你可以使用MultiTrigger的路由事件吗?

时间:2008-10-06 20:02:05

标签: wpf triggers eventtrigger routedevent multidatatrigger

WPF是否支持使用响应路由事件的触发器但只满足条件?

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

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

然而,我只是在满足某个条件的情况下才会寻找触发器。通常,您使用MultiTriggers来满足多种条件。即:

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

然而,MultiTrigger或MultiDataTrigger似乎都不支持触发路由事件。是否有可能在XAML中混合路由事件和条件的这两个概念?

1 个答案:

答案 0 :(得分:2)

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

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

另一方面,事件发生然后消失了。当两个多重事件不在同一时刻发生时,你怎么能做出反应呢?

你必须使用你的EventTrigger - 可能在set-enter / set-leave对 - 来设置某些属性的状态(附加属性听起来不错),然后创建一个{{ 1}}看了那些属性。