Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/303.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
C# 隐式禁用WPF中的动画_C#_.net_Wpf - Fatal编程技术网

C# 隐式禁用WPF中的动画

C# 隐式禁用WPF中的动画,c#,.net,wpf,C#,.net,Wpf,我正在WPF和.NET4中开发一个包含动画的应用程序 我的控件绑定到业务逻辑中的某些值,这些值在特定条件下切换动画。我遇到的问题是,这些动画可能会在应用程序启动时立即播放,这会使控件在首次显示时向其初始状态“动画化” 比如说,我正在开发应用程序的登录部分。我有一个控件,它代表一个自定义弹出窗口,如果用户名和密码字段无效,它应该出现在用户名和密码字段上方。当应用程序启动时,默认情况下,这两个字段都无效,这将提示通过动画显示弹出窗口。我想阻止这些动画在启动时播放,而不明确禁用它们 演示我的问题的另一

我正在WPF和.NET4中开发一个包含动画的应用程序

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

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

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

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

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

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。我最终通过重写代码的逻辑解决了这个问题,因为我在发布这个问题时找不到更好的解决方案。使用附加的依赖项属性可能已经解决了问题,我可能必须尝试一下。因为它没有经过测试,我不确定我的答案是否正确,但很高兴您能够解决您的问题。