c# - 用户控制不透明度随可见性淡出

标签 c# wpf xaml animation

这个问题之前已经解决过,但我无法让它正常工作......应该非常简单!

这是我的 XAML:

<UserControl.Style>
    <Style TargetType="UserControl">
        <Style.Triggers>
            <Trigger Property="Visibility" Value="Visible">
                <Trigger.EnterActions>
                    <BeginStoryboard>
                        <Storyboard x:Name="FadeOutAnimation">
                            <DoubleAnimation Storyboard.TargetProperty="Opacity"
                                FillBehavior="Stop"
                                BeginTime="0:0:5" From="1.0" To="0.0"
                                Duration="0:0:1"/>
                        </Storyboard>
                    </BeginStoryboard>
                </Trigger.EnterActions>
                <Trigger.ExitActions>
                    <BeginStoryboard>
                        <Storyboard>
                            <ObjectAnimationUsingKeyFrames 
                                Storyboard.TargetProperty="Visibility"
                                BeginTime="0:0:7">
                                <DiscreteObjectKeyFrame>
                                    <DiscreteObjectKeyFrame.Value>
                                        <Visibility>Hidden</Visibility>
                                    </DiscreteObjectKeyFrame.Value>
                                </DiscreteObjectKeyFrame>
                            </ObjectAnimationUsingKeyFrames>
                        </Storyboard>
                    </BeginStoryboard>
                </Trigger.ExitActions>
            </Trigger>
        </Style.Triggers>
    </Style>
</UserControl.Style>

这按预期工作:当控件的 Visibility 属性设置为 Visible 时,控件将显示 5 秒,然后淡出 1 秒。然后,该控件的可见性在 7 秒后重置为隐藏(很奇怪,但是 6 秒,即淡入淡出动画的总时间,还不够 - 我猜是另一个 MS 错误!)。

在发生后续 Button.Click 事件时,“可见性”属性将显示为卡住或锁定为“隐藏”,并且无法再次变为“可见”!

有什么想法为什么不呢?

最佳答案

ExitActions Storyboard 中的 FillBehavior="Stop" 有帮助吗? 我认为这个 Storyboard具有可见性值(value)。

看看How to: Set a Property After Animating It with a Storyboard .

关于c# - 用户控制不透明度随可见性淡出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8824401/

相关文章:

wpf - 本地化基于MVVM的WPF应用程序

c# - 如何在 WPF 中以编程方式将滚动条添加到网格?

c# - 更改不透明度时窗口不会重新绘制

带有圆角的 WPF 超链接图像

c# - .Net Core 中的 .AspNetCore.Antiforgery.xxxxxxx cookie 是什么?

c# - 如何在 ComboxItem 内将 DockPanel 的子宽度设置为 100%?

c# - 如何在忽略 DateTime 属性的时间部分的同时选择具有 Linq by Date 的项目?

c# - 已安装 .Net 4.5 但无法在 Visual C# 中使用 ZipFile 类

c# - WPF:如何循环遍历 ContextMenu 以重新排列其中的项目或将菜单项作为子项添加到菜单项

c# - 将用户控件的属性绑定(bind)到数据