首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >WPF按钮"Enable“和"Disable”状态的通用样式

WPF按钮"Enable“和"Disable”状态的通用样式
EN

Stack Overflow用户
提问于 2016-09-03 16:01:32
回答 2查看 3K关注 0票数 0

我尝试使WPF按钮的通用样式,因为它是启用或禁用:

代码语言:javascript
运行
复制
    <Style x:Name="btnStyle" x:Key="btnStyle" TargetType="{x:Type Button}">
        <Setter Property="Foreground"  Value="#FFFFFFFF"/>
        <Setter Property="BorderBrush" Value="#FFCFFFFF"/>
        <Style.Triggers>
            <Trigger Property="IsEnabled" Value="True">
                <Setter Property="Style" Value="{DynamicResource btnStyle}" />
            </Trigger>
            <Trigger Property="IsEnabled" Value="False">
                <Setter Property="Style" Value="{DynamicResource btnStyle}" />
            </Trigger>
        </Style.Triggers>
    </Style>

和我的按钮:

代码语言:javascript
运行
复制
<Button Style="{StaticResource btnStyle}"/>

这会在运行时产生以下异常。

代码语言:javascript
运行
复制
"Style object is not allowed to affect the Style property of the object to which it applies."

如何将此通用样式应用于我的按钮的两种状态?我能不能只用样式覆盖按钮的模板?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-09-17 16:22:56

在@adminSoftDK答案的帮助下,我找到了我的解决方案。我在两个触发器属性上设置了相同的样式。

代码语言:javascript
运行
复制
<Style x:Key="btnStyle" TargetType="{x:Type Button}">
    <Style.Triggers>
        <Trigger Property="IsEnabled" Value="True">
            <Setter Property="Foreground"  Value="#FFFFFFFF"/>
            <Setter Property="BorderBrush" Value="#FFCFFFFF"/>
        </Trigger>
        <Trigger Property="IsEnabled" Value="False">
            <Setter Property="Foreground"  Value="#FFFFFFFF"/>
            <Setter Property="BorderBrush" Value="#FFCFFFFF"/>
        </Trigger>
    </Style.Triggers>
</Style>
票数 0
EN

Stack Overflow用户

发布于 2016-09-03 16:11:59

您的btnStyle是一种样式,在启用或禁用时要更改的所有属性都位于触发器中,例如

代码语言:javascript
运行
复制
 <Style x:Name="btnStyle" x:Key="btnStyle" TargetType="{x:Type Button}">
    <Setter Property="Foreground"  Value="#FFFFFFFF"/>
    <Setter Property="BorderBrush" Value="#FFCFFFFF"/>
    <Style.Triggers>
        <Trigger Property="IsEnabled" Value="True">
            <Setter Property="Content" Value="Enabled" />
        </Trigger>
        <Trigger Property="IsEnabled" Value="False">
            <Setter Property="Content" Value="Disabled" />
        </Trigger>
    </Style.Triggers>
</Style>
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39304665

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档