WPF是否支持使用响应路由事件的触发器但只满足条件?
例如,WPF支持通过事件触发器触发路由事件。 即:
<Button>
<Button.Triggers>
<EventTrigger RoutedEvent="Click">
...
</..
</..
</..
然而,我只是在满足某个条件的情况下才会寻找触发器。通常,您使用MultiTriggers来满足多种条件。即:
<Button>
<Button.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="..." Value="..."/>
<Condition Binding="..." Value="..."/>
</..
</..
</..
</..
然而,MultiTrigger或MultiDataTrigger似乎都不支持触发路由事件。是否有可能在XAML中混合路由事件和条件的这两个概念?
答案 0 :(得分:2)
我认为不是。无论如何,不是你想的方式。
当多个属性同时具有匹配值 时,会触发MultiTrigger
和MultiDataTrigger
。这很容易发生,因为它基于状态。它基于保持不变的价值,至少在一段时间内。
另一方面,事件发生然后消失了。当两个多重事件不在同一时刻发生时,你怎么能做出反应呢?
你必须使用你的EventTrigger
- 可能在set-enter / set-leave对 - 来设置某些属性的状态(附加属性听起来不错),然后创建一个{{ 1}}看了那些属性。