否定条件元素MultiTrigger

问题描述:

我目前正在学习WPF以及使用MultiTrigger和Conditions设置样式化控件的某些属性。我知道MultiTrigger的条件必须全部满足(AND运算符)才能设置Setter指定的值。否定条件元素MultiTrigger

但是,如果不符合值,是否存在条件(让我们将其命名为NotCondition)。我有一个小例子来说明我的意思。

如果鼠标在控制的背景属性应该设置为“红”和内容是的“Hello World”。 另一种情况是,如果鼠标在和内容的“Hello World”,背景应该是“蓝”

<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-Element或Attribute来否定比较?

在这种使用颜色的特殊情况下,您可以使用触发优先。例如。当两个鼠标悬停和文字是世界,你好

<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> 

最新触发覆盖从第一个触发效果。

没有什么积累在WPF,可以让你做的条件触发,迈克Hillberg已经提出了这个问题一个非常interseting解决方案:A Comparable DataTrigger

希望这有助于

干杯,Anvaka 。