gpt4 book ai didi

wpf - 在ViewModel中更改TextBlock的文本时运行动画

转载 作者:行者123 更新时间:2023-12-03 10:49:07 24 4
gpt4 key购买 nike

我正在按照MVVM模式制作WPF应用程序。我有一个按钮和文本块。仅当文本不为空时才显示TextBlock。在应用程序启动时,文本为空,不会显示textblock。当我单击按钮时,将设置示例文本并显示文本块。当我再次单击按钮时,文本设置为空,文本块隐藏。

现在我想要的是,当设置了文本时,开始的动画(渐变)不透明度在5秒钟内从0变为1。

这是我的XAML

<TextBlock Text="{Binding StatusMessage}" Visibility="{Binding IsStatusMessageVisible}" />
<Button Content="UpdateText" Command="{Binding UpdateTextCommand}" />

这是我的ViewModel。
    private string _statusMessage;
public string StatusMessage
{
get { return _statusMessage ?? (_statusMessage = string.Empty); }
set
{
_statusMessage = value;
NotifyOfPropertyChange(() => IsStatusMessageVisible);
NotifyOfPropertyChange(() => StatusMessage);
}
}

public System.Windows.Visibility IsStatusMessageVisible
{
get
{
return (string.IsNullOrEmpty(StatusMessage))
? System.Windows.Visibility.Collapsed
: System.Windows.Visibility.Visible;
}
}

public void UpdateText()
{
if (string.IsNullOrEmpty(StatusMessage))
StatusMessage = Properties.Resources.WaitMessageStatus;
else
StatusMessage = string.empty;
}

我只希望在设置StatusMessage文本时运行动画。

最佳答案

跟着这些步骤:

  • 在ViewModel中声明一个TextChanged事件
  • 在StatusMessage属性的set方法中的
  • 中,在“_statusMessage = value;”行之前如果(_statusMessage!= value &&!string.IsNulOrEmpty(value))引发您的TextChanged事件;
  • 在您的XAML中
  • ,创建一个StoryBoard来更改TextBlock
  • 的不透明度
    XAML中的
  • ,将ControlStoryBoardBehavior添加到TextBlock,然后选择TextChanged事件和StoryBoard
  • 关于wpf - 在ViewModel中更改TextBlock的文本时运行动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12175025/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com