WPF样式仅使用dataTrigger应用于根元素

时间:2013-01-22 21:33:46

标签: wpf styles datatrigger

我遇到了WPF样式的问题。

在root userControl中我的资源定义如下:

<UserControl.Resources>
    <Style TargetType="{x:Type MyControl}">
        <Setter Property="MyControl.AAA" Value="Value1" />
    </Style>
</UserControl.Resources>

这很好用,它会影响整个可视树层次结构中的所有MyControl元素。

如果我尝试使用DataTrigger更改setter,请执行以下操作:

<UserControl.Resources>
    <Style TargetType="{x:Type MyControl}">
        <Style.Triggers>                
           <DataTrigger Binding="{Binding Path=SelectedAAAValue}" Value="Value1">
               <Setter Property="MyControl.AAA" Value="Value1" />
           </DataTrigger>
           <DataTrigger Binding="{Binding Path=SelectedAAAValue}" Value="Value2">
               <Setter Property="MyControl.AAA" Value="Value2"/>
           </DataTrigger>
        </Style.Triggers>
    </Style>
</UserControl.Resources>

该样式仅应用于特定MyControl类型的根元素。

有人能解释一下为什么会发生这种情况吗?如何通过DataTriggers将样式应用于所有特定元素?

非常感谢您的帮助。 Ondra

1 个答案:

答案 0 :(得分:0)

我不确定为什么会这样,但也许您可以找到更多信息here。这当然只是在您设置MyControl.AAA的属性是DependecyProperty的情况下。

图像下的下一段应该解释更多。