2010-01-14 33 views
13

如何以编程方式获取WPF FrameworkElement的当前可视状态?而状态我的意思是像“正常”,“MouseOver”,“禁用”等国家如何以编程方式获取WPF FrameworkElement的当前可视状态?

编辑: 基本上,我改变了一个按钮的视觉状态与VisualStateManager.GoToState(e, "MouseOver", true);,我想知道什么状态在我完成后将它改回。

回答

2

我想你必须知道/记住你自己的按钮状态。 VSM只是通过GoToState方法显示按钮的状态。

编辑:我刚刚发现了一篇文章,介绍如何创建一个可以记住控制状态的custom VSM

+2

您的链接已被删除。 – JohnFx 2013-01-04 21:39:29

0

我认为你应该使用GoToElementState方法而不是GoToState方法。

VisualStateManager.GoToElementState(LayoutRoot, "Add", true); 
+0

奇怪,我甚至没有看到这种方法。当然,我使用.NET 3.5的WPF工具包中的VisualStateManager,因此它可能与.NET 4.0或Silverlight中内置的不同。 – jpierson 2013-02-18 02:47:32

0

我觉得你在这里错过了WPF的观点,它不是模型的观点。你不应该在视图中存储状态。将状态存储在您的模型中并使用视图来表示它。在此基础上,您不需要阅读视图的状态,您已经知道它。

我知道这可能看起来像很多工作,但它会在以后付钱给你。

相关问题