基于数据触发器未激活

时间:2012-07-13 17:54:53

标签: wpf xaml triggers styles

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

这是我的基础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>

为什么我的所有Setter(光标,填充,背景)都被设置但MouseOver触发器无效的任何想法?

旁注: 如果我将触发器剪切/粘贴到ValidationNavigationStyle,它将按预期工作。我有一种预感,它与RelativeSource绑定有关,但我无法弄清楚它是什么。

0 个答案:

没有答案