wpf - 在属性更改之前,您可以定义一个要播放的 Storyboard吗?

标签 wpf xaml triggers storyboard

例如,我正在为某个元素设置可见性和关闭。我有一个 Trigger,它监听 Visibility 设置为 Visible 并播放一个在元素中淡入淡出的 Storyboard。

所以另一方面,当元素设置为 Hidden 时,我希望元素淡出,然后将属性设置为 Visibility = false。这可能吗?如果可能的话怎么办?目前我有类似的东西:

    <Style.Triggers>
        <Trigger Property="Visibility" Value="Visible">
            <Trigger.EnterActions>
                <BeginStoryboard>
                    <Storyboard>
                        <DoubleAnimation Storyboard.TargetProperty="Opacity" From="0" To="1" Duration="0:0:0.5" />
                    </Storyboard>
                </BeginStoryboard>
            </Trigger.EnterActions>
            <Trigger.ExitActions>
                <BeginStoryboard>
                    <Storyboard>
                        <DoubleAnimation Storyboard.TargetProperty="Opacity" From="1" To="0" Duration="0:0:0.5" />
                    </Storyboard>
                </BeginStoryboard>
            </Trigger.ExitActions>
        </Trigger>
    </Style.Triggers>

最佳答案

还有更多的 Trigger 类。。也许你可以使用另一个 trigger 来实现你想做的事情。。

来自 MSDN:

There are several different types of triggers: Trigger, MultiTrigger, EventTrigger, DataTrigger, and MultiDataTrigger.

也许使用 DataTrigger 绑定(bind)到状态属性,告诉 UI 某些事情正在发生变化?或者您可以尝试使用自定义事件和 EventTrigger 来实现相同的目的?只是一些想法..

关于wpf - 在属性更改之前,您可以定义一个要播放的 Storyboard吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/985632/

相关文章:

c# - 如何以编程方式在 C# 中向 DataGrid 添加行?

c# - 一个 ViewModel 的两个并发 View

c# - WPF 椭圆剪裁

c# - 显示用于更改 ViewModel 状态的交替图像

mysql 触发器在达到一定数量的点后更改用户状态

c# - WPF 控件模板和数据模板

c# - WPF:动态过滤数据网格

mysql - 在 MySql 触发器中保存查询

mysql - 查询在终端中运行但不在 PHPMyadmin 中运行

c# - WinForm插件系统