【发布时间】:2014-09-17 06:23:24
【问题描述】:
这个问题是my previous question 和this related question 关于VisualStates 如何在 WPF 中工作的后续问题。
目前,我的理解是在不同的VisualStateGroups 中为同一属性设置动画可能会导致问题(请参阅链接的问题)。
要解决这些问题,就需要利用漏洞。 (也许漏洞不是正确的术语,但似乎解决方案不是 WPF 设计者想要的。)
我想知道在多个VisualStateGroups 中为同一属性设置动画而不引起不良副作用的正确方法是什么。如果不可能,为控件实现相同视觉行为的正确途径是什么?
我可以在MSDN找到一些相关文档:
控件始终处于每组的一个状态。例如,即使鼠标指针未悬停在 Button 上也可以具有焦点,因此处于 Focused 状态的 Button 可以处于 MouseOver、Pressed 或 Normal 状态。
这就引出了第二个问题……
如何提供仅在两个特定 VisualStates 处于活动状态时才应该出现的视觉行为?
以ToggleButton为例:
- 如果按钮选中,我想显示行为1。
- 如果按钮禁用,我想显示行为 2。
- 最后,如果按钮是Checked和Disabled,我想显示Behavior 3。
在上面的示例中,您将如何渲染第三个视觉行为?
【问题讨论】:
-
你应该使用 Blend。
标签: c# wpf xaml visualstatemanager visualstates