我可以让 WPF 样式优先于本地值吗? [英] Can I make a WPF style take precedence over a local value?

查看:22
本文介绍了我可以让 WPF 样式优先于本地值吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I have created a boolean attached property in my WPF project, and I want elements with this property set to true to display a certain way, regardless of any local local values that have been set in the XAML.

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

From the documentation, I understand that by default, local values take precedence over both style setters and style triggers. Is it possible to create a style trigger that takes precedence over local values?

推荐答案

使用 Erti-Chris Eelmaa 在他对我的问题的评论中提到的技术,我最终创建了一个成功的动画:

Using the technique mentioned by Erti-Chris Eelmaa in his comment on my question, I ended up creating an animation which did the trick:

<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 的任何本地值.

This takes precedence over any local value for Button.IsEnabled.

这篇关于我可以让 WPF 样式优先于本地值吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆