2 つの異なるルーティング イベントに応答して発生させたいイベント トリガーがあります。イベント応答コード (XAML) を 2 回繰り返したくありません。1 つのイベント トリガー宣言に対して複数のルーティング イベントを指定できますか?
単一のイベントの例:
<Style.Triggers>
<EventTrigger RoutedEvent="Button.MouseEnter">
<--XAML MAGIC-->
...
2 つの異なるルーティング イベントに応答して発生させたいイベント トリガーがあります。イベント応答コード (XAML) を 2 回繰り返したくありません。1 つのイベント トリガー宣言に対して複数のルーティング イベントを指定できますか?
単一のイベントの例:
<Style.Triggers>
<EventTrigger RoutedEvent="Button.MouseEnter">
<--XAML MAGIC-->
...
申し訳ありません... 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>
コンセプトは、リソースを共有することで重複コードを削減することです。
お役に立てれば!