我可以使WPF样式优先于本地值吗?

我在我的
WPF项目中创建了一个布尔附加属性,我希望将此属性设置为true的元素显示某种方式,而不管在XAML中设置的任何本地本地值.

documentation开始,我理解默认情况下,本地值优先于样式设置器和样式触发器.是否可以创建一个优先于本地值的样式触发器?

最佳答案 使用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的任何本地值.

点赞