我在我的WPF项目中创建了一个布尔附加属性,并且我希望将此属性设置为true的元素以某种方式显示,而不管在XAML中设置的任何本地本地值。
从documentation,我了解默认情况下,本地值优先于样式设置器和样式触发器。是否可以创建一个优先于本地值的样式触发器?
答案 0 :(得分:2)
使用Erti-Chris Eelmaa在我的问题评论中提到的技术,我最终制作了一个动画片来完成这个伎俩:
<Style TargetType="{x:Type Button}">
<Style.Triggers>
<Trigger Property="my:Ext.IsReadOnly" Value="True">
<Trigger.EnterActions>
<BeginStoryboard Name="IsReadOnly">
<Storyboard>
<BooleanAnimationUsingKeyFrames Storyboard.TargetProperty="(Button.IsEnabled)" Duration="0:0:0">
<DiscreteBooleanKeyFrame Value="False" KeyTime="0:0:0" />
</BooleanAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</Trigger.EnterActions>
<Trigger.ExitActions>
<RemoveStoryboard BeginStoryboardName="IsReadOnly" />
</Trigger.ExitActions>
</Trigger>
</Style.Triggers>
</Style>
这优先于Button.IsEnabled
的任何本地值。