1

我为导航菜单创建了基本样式。我想根据特定样式更改某些元素,例如标签内容和图标,同时保持所有导航项的悬停/单击效果标准。

这是我的基本 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 绑定有关,但我不太清楚它是什么。

4

0 回答 0