我遇到了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
答案 0 :(得分:0)
我不确定为什么会这样,但也许您可以找到更多信息here。这当然只是在您设置MyControl.AAA的属性是DependecyProperty的情况下。
图像下的下一段应该解释更多。