在我的WPF应用程序中,我有一个反馈控件,我希望在用户操作完成后显示(保存数据,删除...).可见性设置为隐藏开始,样式设置为定义为资源的animateFadeOut样式(参见下文).然后我想在我的C#代码中设置文本并控制Visibility可见,并让反馈控件显示消息并在5秒后淡出并保持隐藏(Visibility.Hidden).
以下XAML在我第一次调用control.Visiblity = Visibility.Visible时工作,但控件第二次不再出现.我想这是因为动画仍然在运行,它可以控制反馈控制.然后我尝试将FillBehavior设置为"停止",但这只是让控件再次可见,我希望它隐藏起来.然后,使用FillBehavior ="Stop",我尝试设置一个触发器"当Opacity = 0时,将Visibility设置为Hidden".触发器似乎没有触发,在动画完成后我再次看到了可视控件.
请帮助指出我在这里做错了什么.
或者,如果您可以建议一种更好的方法来显示一个在5秒后消失并且可以反复调用的控件,我将不胜感激.
谢谢!
Run Code Online (Sandbox Code Playgroud)<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>