4

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

文档中,我了解到默认情况下,本地值优先于样式设置器和样式触发器。是否可以创建优先于本地值的样式触发器?

4

1 回答 1

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

于 2013-04-15T07:18:36.153 回答