在我的 WPF 应用程序中,我有一个反馈控件,希望在用户完成某个操作(保存数据、删除等)后出现。初始时,可见性设置为 Hidden,样式设置为 animateFadeOut 样式,该样式已定义为资源(参见下面)。然后,在我的 C# 代码中,我想设置文本和控件可见性为 visible,并让反馈控件显示消息,然后在 5 秒后淡出并保持隐藏(Visibility.Hidden)。
以下 XAML 在我第一次调用 control.Visibility = Visibility.Visible 时有效,但是控件第二次不会重新出现。我认为这是因为动画仍在运行,它控制着反馈控件。我尝试将 FillBehavior 设置为 "Stop",但那只会使控件再次可见,而我想要它隐藏。然后,使用 FillBehavior="Stop",我尝试设置触发器 "当 Opacity=0 时,将可见性设置为 Hidden"。但是触发器似乎没有触发,当动画完成后,我又再次看到了可见的控件。
请帮忙指出我在这里做错了什么。
或者,如果您可以建议一种更好的方法来显示一个控件,在 5 秒后淡出并能够重复调用,我会非常感激。
谢谢!
以下 XAML 在我第一次调用 control.Visibility = Visibility.Visible 时有效,但是控件第二次不会重新出现。我认为这是因为动画仍在运行,它控制着反馈控件。我尝试将 FillBehavior 设置为 "Stop",但那只会使控件再次可见,而我想要它隐藏。然后,使用 FillBehavior="Stop",我尝试设置触发器 "当 Opacity=0 时,将可见性设置为 Hidden"。但是触发器似乎没有触发,当动画完成后,我又再次看到了可见的控件。
请帮忙指出我在这里做错了什么。
或者,如果您可以建议一种更好的方法来显示一个控件,在 5 秒后淡出并能够重复调用,我会非常感激。
谢谢!
<Style TargetType="{x:Type FrameworkElement}" x:Key="animateFadeOut">
<Style.Triggers>
<Trigger Property="Visibility" Value="Visible">
<Trigger.EnterActions>
<BeginStoryboard >
<Storyboard>
<DoubleAnimation BeginTime="0:0:5.0" Storyboard.TargetProperty="Opacity"
From="1.0" To="0.0" Duration="0:0:0.5"/>
</Storyboard>
</BeginStoryboard>
</Trigger.EnterActions>
</Trigger>
</Style.Triggers>
</Style>