我目前正在学习WPF和使用MultiTrigger和条件来设置样式控件的一些属性。我知道,MultiTrigger的条件必须满足(和-操作符)才能设置由设置器指定的值。
但是,如果不满足值,是否存在条件(让我们将其命名为NotCondition)。我有一个小例子来说明我的意思。
如果鼠标在控件上方,且内容为“Hello”,则背景属性应设置为“红色”。另一种情况是,如果鼠标已经结束,内容是而不是 'Hello‘,背景应该是“蓝色”。
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsMouseOver" Value="True" />
<Condition Property="Content" Value="Hello World" />
</MultiTrigger.Conditions>
<Setter Property="Background" Value="Red"/>
</MultiTrigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsMouseOver" Value="True" />
<!--<NotCondition Property="Content" Value="Hello World" />-->
</MultiTrigger.Conditions>
<Setter Property="Background" Value="Blue"/>
</MultiTrigger>我如何在WPF/XAML中存档这样的东西?在条件元素上是否有一个NotCondition或一个属性来否定比较?
发布于 2010-02-24 09:52:16
在这种颜色的特殊情况下,可以使用触发器优先。例如。
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="Blue"/>
</Trigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsMouseOver" Value="True"/>
<Condition Property="Text" Value="Hello world"/>
</MultiTrigger.Conditions>
<Setter Property="Background" Value="Red"/>
</MultiTrigger>当鼠标都结束了,文本是Hello时,最新的触发器覆盖了第一个触发器的效果。
在WPF中没有任何内置的方法可以让您执行条件触发器,但是 Mike Hillberg为这个问题提出了一个非常令人心烦的解决方案:可比较的DataTrigger。
希望这能有所帮助
https://stackoverflow.com/questions/2324875
复制相似问题