在WPF中隐式禁用动画

时间:2012-01-17 14:05:16

标签: c# .net wpf

我正在开发WPF中的应用程序和包含动画的.Net 4。

我的控件绑定到业务逻辑中的某些值,这些值在特定条件下切换动画。我遇到的问题是这些动画可能会在应用程序启动后立即播放,这会使控件在首次显示时“动画”为初始状态。

比方说,我正在开发应用程序的Login部分。我有一个控件代表一个自定义弹出窗口,如果这些弹出窗口无效,它应该出现在用户名和密码字段上方。当应用程序启动时,默认情况下这两个字段都是无效的,这会提示弹出窗口通过动画显示。我想阻止这些动画在启动时播放,而不是明确禁用它们。

另一个演示我的问题的例子是一个绑定到布尔属性的切换按钮。如果我在关闭应用程序之前将按钮的状态保存为切换,则当应用程序重新启动时(因为我在切换状态之间有动画),按钮将“动画”为切换状态,而不是简单地切换没有动画。

有没有办法暂时停止播放所有动画?

我在某处读到禁用动画的最佳方法是在特定的Storyboard上调用SkipToFill(...)。问题是我必须明确禁用所有相关的动画,如果事先不知道这些动画可能会有问题。

Storyboard theBoard = (Storyboard)FindResource(resourceName); 
theBoard.Begin(this, true); 
theBoard.SkipToFill(this); 

如果不逐一明确禁用它们,您将如何禁用动画?这样的事情甚至可能吗?

1 个答案:

答案 0 :(得分:0)

如何使用附加的依赖属性(附加在StoryBoards上)来启用或禁用动画(或将其持续时间设置为0)?也许有一个更简单的解决方案,但由于似乎没有提出,我建议一个 Rq:我不确定在开窗时动画的控制是一件非常无聊的事情。但我不知道,也许如果屏幕上有很多动画,也许它看起来很奇怪。