2

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

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

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

但是,我正在寻找仅在满足特定条件时才触发的触发器。通常,您使用 MultiTriggers 来满足多个条件。IE:

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

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

4

1 回答 1

2

我不认为它是。反正不是你想的那样。

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

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

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

于 2008-10-06T20:46:40.167 回答