小编son*_*erd的帖子

WPF淡出控件

在我的WPF应用程序中,我有一个反馈控件,我希望在用户操作完成后显示(保存数据,删除...).可见性设置为隐藏开始,样式设置为定义为资源的animateFadeOut样式(参见下文).然后我想在我的C#代码中设置文本并控制Visibility可见,并让反馈控件显示消息并在5秒后淡出并保持隐藏(Visibility.Hidden).

以下XAML在我第一次调用control.Visiblity = Visibility.Visible时工作,但控件第二次不再出现.我想这是因为动画仍然在运行,它可以控制反馈控制.然后我尝试将FillBehavior设置为"停止",但这只是让控件再次可见,我希望它隐藏起来.然后,使用FillBehavior ="Stop",我尝试设置一个触发器"当Opacity = 0时,将Visibility设置为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>
Run Code Online (Sandbox Code Playgroud)

c# wpf animation storyboard

18
推荐指数
3
解决办法
4万
查看次数

标签 统计

animation ×1

c# ×1

storyboard ×1

wpf ×1