2008-10-06 35 views
2

WPF是否支持使用触发器来响应路由事件,但仅满足条件?您可以使用MultiTrigger使用路由事件吗?

例如,WPF支持通过事件触发器在路由事件上进行触发。 即:

<Button> 
    <Button.Triggers> 
    <EventTrigger RoutedEvent="Click"> 
     ... 
    </.. 
    </.. 
</.. 

但是我找了扳机,只给予一个特定条件得到满足熄灭。通常情况下,您使用MultiTriggers来满足多种条件。即:

<Button> 
    <Button.Triggers> 
    <MultiDataTrigger> 
     <MultiDataTrigger.Conditions> 
     <Condition Binding="..." Value="..."/> 
     <Condition Binding="..." Value="..."/> 
     </.. 
    </.. 
    </.. 
</.. 

但是,MultiTrigger或MultiDataTrigger似乎都不支持在路由事件上触发。在XAML中混合这两个路由事件和条件的概念甚至是可能的吗?

回答

2

我不这么认为。无论如何,不​​是你想到它的方式。

MultiTriggerMultiDataTrigger当多个属性具有匹配值在同一时间时被触发。这是很容易发生的事情,因为它基于状态。它基于不变的价值观,至少在一段时间内保持不变。

另一方面,事件发生,然后消失。当他们不在同一时刻发生的时候,你怎么能够对两个事件作出反应?

您将不得不使用您的EventTrigger s - 或许在set-enter/set-leave对中设置某些属性的状态(附加属性听起来不错),然后创建一个MultiTrigger看着那些属性。

+0

我同意,我会补充说明,大多数RoutedEvents表示状态的变化都具有与它们相对应的属性,并且可以在MultiTrigger中使用。 – 2009-03-12 20:00:51

相关问题