Можно ли использовать перенаправленные события с MultiTrigger?

StackOverflow https://stackoverflow.com/questions/175949

Вопрос

Поддерживает ли WPF использование триггеров, которые отвечают на перенаправленные события, но только при условии соблюдения условия?

Например, WPF поддерживает запуск по перенаправленным событиям через триггеры событий. то есть:

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

Однако я ищу, чтобы сработал триггер только при соблюдении определенных условий. Обычно вы используете MultiTriggers для выполнения нескольких условий. то есть:

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

Однако ни MultiTrigger, ни MultiDataTrigger не поддерживают запуск по перенаправленным событиям. Можно ли даже смешать эти две концепции перенаправленных событий и условий в XAML?

Это было полезно?

Решение

Я не думаю, что это так. Во всяком случае, не так, как ты думаешь.

MultiTrigger и MultiDataTrigger запускаются, когда несколько свойств имеют совпадающие значения одновременно . Это то, что может легко произойти, потому что оно основано на состоянии. Он основан на значениях, которые остаются неизменными, по крайней мере, некоторое время.

С другой стороны, события случаются, а потом исчезают. Как вы могли бы реагировать на два множественных события, когда они не происходят одновременно?

Вы должны будете использовать ваши EventTrigger - возможно, в парах set-enter / set-left - чтобы установить состояние определенных свойств (здесь прикрепленные свойства звучат хорошо), а затем создать MultiTrigger , который просматривал эти свойства.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top