如何以编程方式获取 WPF FrameworkElement 的当前可视状态?

13

如何以编程方式获取WPF FrameworkElement的当前可视状态?我所指的状态是像“正常”,“鼠标悬停”,“禁用”等状态。

编辑: 基本上,我正在使用VisualStateManager.GoToState(e,“MouseOver”,true)更改按钮的可视状态,并且在完成后想知道要将其更改回哪个状态。

3个回答

2
我认为您需要自己了解/记住按钮状态。VSM只是通过GoToState方法显示按钮所处的状态。
编辑:我刚刚发现一篇文章,介绍如何创建一个自定义的VSM来记住控件状态。文章链接:custom VSM

0

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

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

奇怪,我甚至看不到这个方法。当然,我正在使用来自WPF工具包的VisualStateManager,用于.NET 3.5,因此它可能与.NET 4.0或Silverlight中内置的不同。 - jpierson

0

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

我知道现在这可能看起来很费力,但以后会有回报的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接