3

2 つの異なるルーティング イベントに応答して発生させたいイベント トリガーがあります。イベント応答コード (XAML) を 2 回繰り返したくありません。1 つのイベント トリガー宣言に対して複数のルーティング イベントを指定できますか?

単一のイベントの例:

<Style.Triggers>
    <EventTrigger RoutedEvent="Button.MouseEnter">
        <--XAML MAGIC-->
        ...
4

1 に答える 1

6

申し訳ありません... WPF の EventTrigger の実装では、1 つのルーティング イベントしか許可されません。

通常、ルーティング イベントからストーリーボードを起動します。次の妥協点を提案します。

<!--Define a storyboard as a resource-->
<Storyboard x:Key="MyStoryboard1">
   <!--Many properties and etc...-->
</Storyboard>

<Style.Triggers>
   <EventTrigger RoutedEvent="Button.MouseEnter">
      <BeginStoryboard Storyboard="{StaticResource MyStoryboard1}">
         <!--Other properties/name if necessary-->
      </BeginStoryboard>
   </EventTrigger>
   <EventTrigger RoutedEvent="Button.MouseDown">
      <BeginStoryboard Storyboard="{StaticResource MyStoryboard1}">
         <!--Other properties/name if necessary-->
      </BeginStoryboard>
   </EventTrigger>
</Style.Triggers>

コンセプトは、リソースを共有することで重複コードを削減することです。

お役に立てれば!

于 2009-03-17T14:18:11.530 に答える