ナビゲーション メニューのベース スタイルを作成しました。ホバー/クリック効果をすべてのナビゲーション項目の標準に保ちながら、特定のスタイルに基づいてラベル コンテンツやアイコンなどの特定の要素を変更したいと考えています。
これが私のベース XAML です。
<Style x:Key="BaseNavigationStyle">
<Setter Property="Control.Cursor" Value="Hand"/>
<Setter Property="Control.Padding" Value="0,6,0,6"/>
<Setter Property="Control.Background" Value="{StaticResource NavigationItemBackgroundColorBrush}"/>
<Style.Triggers>
<DataTrigger Binding="{Binding Path=IsMouseOver, RelativeSource={RelativeSource Self}}" Value="True">
<DataTrigger.ExitActions>
<BeginStoryboard Storyboard="{StaticResource NavigationItemBackgroundNormal}"/>
</DataTrigger.ExitActions>
<DataTrigger.EnterActions>
<BeginStoryboard Storyboard="{StaticResource NavigationItemBackgroundHover}"/>
</DataTrigger.EnterActions>
</DataTrigger>
</Style.Triggers>
</Style>
ナビゲーション項目の XAML は次のとおりです。
<Style x:Key="ValidationNavigationStyle" BasedOn="{StaticResource BaseNavigationStyle}">
<Setter Property="Navigation:NavigationUserControl.Image">
<Setter.Value>
<BitmapImage UriSource="Assets/Navigation/validation.png"/>
</Setter.Value>
</Setter>
<Setter Property="Navigation:NavigationUserControl.Label" Value="Validation"/>
</Style>
すべてのセッター (カーソル、パディング、バックグラウンド) が設定されているのに、MouseOver トリガーが機能しない理由についてのアイデアはありますか?
補足:トリガーを にカット アンド ペーストするValidationNavigationStyle
と、期待どおりに動作します。RelativeSource バインディングと関係があるという予感がありますが、それが何であるかはよくわかりません。