如何以编程方式获取 WPF FrameworkElement 的当前视觉状态?我所说的状态是指“正常”、“鼠标悬停”、“禁用”等状态。
编辑:基本上,我正在使用 更改按钮的视觉状态VisualStateManager.GoToState(e, "MouseOver", true);
,并且我想知道在完成后将其更改回什么状态。
如何以编程方式获取 WPF FrameworkElement 的当前视觉状态?我所说的状态是指“正常”、“鼠标悬停”、“禁用”等状态。
编辑:基本上,我正在使用 更改按钮的视觉状态VisualStateManager.GoToState(e, "MouseOver", true);
,并且我想知道在完成后将其更改回什么状态。
我认为您必须自己知道/记住按钮状态。VSM 只是通过GoToState
方法显示按钮所在的状态。
编辑:我刚刚发现一篇文章如何创建一个记住控制状态的自定义 VSM 。
我认为您应该使用 GoToElementState 方法而不是 GoToState 方法。
VisualStateManager.GoToElementState(LayoutRoot, "Add", true);
我觉得你在这里错过了 WPF 的重点,它是视图而不是模型。您不应该在视图中存储状态。将状态存储在您的模型中并使用视图来表示它。在此基础上,您不需要阅读视图的状态,您已经知道它。
我知道目前这似乎需要做很多工作,但它会在以后给你回报。