Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在WPF应用程序中全局更改动画的速度?_Wpf_Xaml_Animation - Fatal编程技术网

如何在WPF应用程序中全局更改动画的速度?

如何在WPF应用程序中全局更改动画的速度?,wpf,xaml,animation,Wpf,Xaml,Animation,我想在WPF应用程序中添加全局更改所有动画速度的功能。例如,一些用户可能不喜欢动画,因此他们可能会将持续时间缩短到正常的四分之一。在演示过程中,您可能希望将持续时间增加一倍,以便强调它们 我知道了如何全局调整DesiredFrameRate属性,但我不知道如何全局调整SpeedRatio属性(即,使SpeedRatio适用于所有时间线,而不是一次只适用于一个特定的时间线)。动画本身可能来自各种地方(触发器、可视状态管理器等) 有什么想法吗?您可以在所有动画中使用资源: <KeyTime x

我想在WPF应用程序中添加全局更改所有动画速度的功能。例如,一些用户可能不喜欢动画,因此他们可能会将持续时间缩短到正常的四分之一。在演示过程中,您可能希望将持续时间增加一倍,以便强调它们

我知道了如何全局调整DesiredFrameRate属性,但我不知道如何全局调整SpeedRatio属性(即,使SpeedRatio适用于所有时间线,而不是一次只适用于一个特定的时间线)。动画本身可能来自各种地方(触发器、可视状态管理器等)


有什么想法吗?

您可以在所有动画中使用资源:

<KeyTime x:Key="AnimationTime">0</KeyTime>
<Storyboard x:Key="Storyboard1">
    <ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(TextBoxBase.Background).(SolidColorBrush.Color)" Storyboard.TargetName="{x:Null}">
        <EasingColorKeyFrame KeyTime="{StaticResource AnimationTime}" Value="Red"/>
    </ColorAnimationUsingKeyFrames>
</Storyboard>
0

这类工作正常,但代价是必须手动修改程序中的每个动画,并继续手动不断地维护这些更改。我的问题的重点是找到一种方法,使单个控制点影响应用程序中的所有动画。顺便说一句,这种方法的另一个用途是让应用程序在检测到它在远程桌面或软件渲染环境上运行时禁用其动画。