13

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

编辑:基本上,我正在使用 更改按钮的视觉状态VisualStateManager.GoToState(e, "MouseOver", true);,并且我想知道在完成后将其更改回什么状态。

4

3 回答 3

2

我认为您必须自己知道/记住按钮状态。VSM 只是通过GoToState方法显示按钮所在的状态。

编辑:我刚刚发现一篇文章如何创建一个记住控制状态的自定义 VSM 。

于 2010-04-25T21:49:58.553 回答
0

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

VisualStateManager.GoToElementState(LayoutRoot, "Add", true);
于 2011-08-02T06:21:00.317 回答
0

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

我知道目前这似乎需要做很多工作,但它会在以后给你回报。

于 2011-08-24T09:19:38.323 回答