WPF 在可见性上停止故事板已更改 [英] WPF Stop Storyboard on Visibility Changed

查看:23
本文介绍了WPF 在可见性上停止故事板已更改的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个带有故事板的 UserControl,我想在控件的可见性发生变化时停止动画.

I have a UserControl with a story board and I want to stop the animation when the control's Visibility changes.

我创建了一个触发器来暂停动画并根据状态启动它,但我不断收到 ArgumentException.

I created a Trigger to pause the animation and start it depending on the state, but I keep getting an ArgumentException.

这是 XAML:

<UserControl.Triggers>
    <EventTrigger RoutedEvent="FrameworkElement.Loaded">
        <BeginStoryboard x:Name="ProgressAnimation_BeginStoryboard" Storyboard="{StaticResource ProgressAnimation}"/>
    </EventTrigger>
    <Trigger Property="Control.Visibility" Value="Collapsed">
        <PauseStoryboard BeginStoryboardName="ProgressAnimation_BeginStoryboard" />
    </Trigger>
    <Trigger Property="Control.Visibility" Value="Visible">
        <ResumeStoryboard BeginStoryboardName="ProgressAnimation_BeginStoryboard" />
    </Trigger>
</UserControl.Triggers>

这里是例外:

值System.Windows.Media.Animation.PauseStoryboard"不是System.Windows.SetterBase"类型,不能在此泛型集合中使用.参数名称:值

The value "System.Windows.Media.Animation.PauseStoryboard" is not of type "System.Windows.SetterBase" and cannot be used in this generic collection. Parameter name: value

我将如何在 XAML 中执行此操作?

How would I do this in XAML ?

谢谢,劳尔

推荐答案

您可以使用控件模板来完成:

You may do it using a control template:

<ControlTemplate>
    ... Control stuff here

    <ControlTemplate.Triggers>
        <Trigger Property="Visibility" Value="Visible">
            <Trigger.EnterActions>
                <BeginStoryboard Storyboard="{StaticResource AnimationStoryboard}" x:Name="AnimationBeginStoryboard"/>
            </Trigger.EnterActions>
            <Trigger.ExitActions>
                <RemoveStoryboard BeginStoryboardName="AnimationBeginStoryboard"/>
            </Trigger.ExitActions>
        </Trigger>
    </ControlTemplate.Triggers>

</ControlTemplate>

这篇关于WPF 在可见性上停止故事板已更改的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆