C# 隐式禁用WPF中的动画
我正在WPF和.NET4中开发一个包含动画的应用程序 我的控件绑定到业务逻辑中的某些值,这些值在特定条件下切换动画。我遇到的问题是,这些动画可能会在应用程序启动时立即播放,这会使控件在首次显示时向其初始状态“动画化” 比如说,我正在开发应用程序的登录部分。我有一个控件,它代表一个自定义弹出窗口,如果用户名和密码字段无效,它应该出现在用户名和密码字段上方。当应用程序启动时,默认情况下,这两个字段都无效,这将提示通过动画显示弹出窗口。我想阻止这些动画在启动时播放,而不明确禁用它们 演示我的问题的另一个示例是绑定到布尔属性的切换按钮。如果在关闭应用程序之前将按钮的状态保存为正在切换,则当应用程序重新启动时,按钮将朝着切换状态“设置动画”(因为我在切换状态之间设置动画),而不是简单地在不设置动画的情况下切换 有没有办法暂时禁止播放所有动画 我在某个地方读到,禁用动画的最佳方法是在特定的故事板上调用SkipToFill(…)。问题是,我必须明确禁用所有相关动画,如果事先不知道这些动画,这可能是一个问题C# 隐式禁用WPF中的动画,c#,.net,wpf,C#,.net,Wpf,我正在WPF和.NET4中开发一个包含动画的应用程序 我的控件绑定到业务逻辑中的某些值,这些值在特定条件下切换动画。我遇到的问题是,这些动画可能会在应用程序启动时立即播放,这会使控件在首次显示时向其初始状态“动画化” 比如说,我正在开发应用程序的登录部分。我有一个控件,它代表一个自定义弹出窗口,如果用户名和密码字段无效,它应该出现在用户名和密码字段上方。当应用程序启动时,默认情况下,这两个字段都无效,这将提示通过动画显示弹出窗口。我想阻止这些动画在启动时播放,而不明确禁用它们 演示我的问题的另一
Storyboard theBoard = (Storyboard)FindResource(resourceName);
theBoard.Begin(this, true);
theBoard.SkipToFill(this);
在不逐个明确禁用动画的情况下,如何禁用动画?这样做可能吗?使用附加的依赖属性(附加在故事板上)启用或禁用动画(或将动画的持续时间设置为0)怎么样?也许有一个更简单的解决方案,但由于似乎没有人提出,我建议这样做。
Rq:我不确定窗户打开时的控制是否是一件很无聊的事情。但是我不知道,也许如果屏幕上有很多动画,它可能看起来会很奇怪。使用附加的依赖属性(附加在故事板上)启用或禁用动画(或将其持续时间设置为0)怎么样?也许有一个更简单的解决方案,但由于似乎没有人提出,我建议这样做。
Rq:我不确定窗户打开时的控制是否是一件很无聊的事情。但是我不知道,如果屏幕上有很多动画,可能看起来会很奇怪。问题不在于您的视图,而是触发显示用户名和密码的视图的逻辑无效。什么时候检查它们是否有效?我有两个布尔属性,UsernameIsValid和PasswordIsValid,默认为false。如果字段不为空且用户名不包含特殊字符,则该字段有效。当用户在任一字段中键入时,将检查这些条件。当两者都有效时,将启用“登录”按钮。我理解你的观点,我想在启动时将它们标记为有效,但我不想“黑客”系统。@Hussein Khalil我相信其中一个UI DP元数据选项是可动画的,所以你可以尝试将其设置为false,会有帮助吗?@user572559:我会尝试一下,谢谢。问题不是你的观点,但是触发显示用户名和密码的视图的逻辑无效。什么时候检查它们是否有效?我有两个布尔属性,UsernameIsValid和PasswordIsValid,默认为false。如果字段不为空且用户名不包含特殊字符,则该字段有效。当用户在任一字段中键入时,将检查这些条件。当两者都有效时,将启用“登录”按钮。我理解你的观点,我想在启动时将它们标记为有效,但我不想“黑客”系统。@Hussein Khalil我相信其中一个UI DP元数据选项是可动画的,所以你可以尝试将其设置为false,会有帮助吗?@user572559:我会尝试一下,谢谢。谢谢Vincent。我最终通过重写代码的逻辑解决了这个问题,因为我在发布这个问题时找不到更好的解决方案。使用附加的依赖项属性可能已经解决了问题,我可能必须尝试一下。因为它没有经过测试,我不确定我的答案是否正确,但很高兴您能够解决您的问题。谢谢Vincent。我最终通过重写代码的逻辑解决了这个问题,因为我在发布这个问题时找不到更好的解决方案。使用附加的依赖项属性可能已经解决了问题,我可能必须尝试一下。因为它没有经过测试,我不确定我的答案是否正确,但很高兴您能够解决您的问题。