【问题标题】:Disable the "IsEnabled=false" Color Change on a Button?禁用按钮上的“IsEnabled=false”颜色更改?
【发布时间】:2013-03-31 11:43:08
【问题描述】:

我想避免按钮被禁用时的颜色变化。 按钮颜色应该是相同的,无论它是否禁用。

使用一种样式,我可以在它被禁用时更改背景颜色:

<Style TargetType="{x:Type Button}">
...
  <Setter Property="Template">
    <Setter.Value>
      <ControlTemplate TargetType="{x:Type Button}">
        ...
        <ControlTemplate.Triggers>
         ...
          <Trigger Property="IsEnabled" Value="false">
            <Setter TargetName="Border" Property="Background" Value="#EEEEEE" />
            <Setter TargetName="Border" Property="BorderBrush" Value="#AAAAAA" />
            <Setter Property="Foreground" Value="#888888"/>
          </Trigger>
        </ControlTemplate.Triggers>
      </ControlTemplate>
    </Setter.Value>
  </Setter>
</Style>

我可以在那里更改背景颜色,但我希望保持动态,因为背景颜色是数据绑定的,不应更改。

如果我删除背景设置器,则会执行默认背景颜色更改。

如何禁用颜色更改?或者至少使 Disabled-Background-Color 数据绑定?

对不起,我的英语不好。

【问题讨论】:

    标签: c# wpf xaml button isenabled


    【解决方案1】:

    如果你想让它成为 data-bonund 最合适的地方,imo 会在你的控件的相对 DataTmplate 中声明它,你可以在其中指定 Style(已经由你定义)和 data em> 应用于控件。

    您可以在您的状态和您希望在按钮上显示的相对颜色之间定义Converter

    如果您想将自己限制在Style 中,您可以在Style 本身内部定义一个数据绑定。我不太合乎逻辑,但这是可能的。

    看看这个答案:

    Change Button Background color through MVVM pattern in WPF

    【讨论】:

    • 我不明白如何通过样式或数据模板在按钮的禁用状态下更改背景颜色。能具体说明一下吗?
    • @DocSnuggles:您查看我的答案中提供的链接了吗?有一个如何做到这一点的实际示例。
    猜你喜欢
    • 2015-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-20
    • 2021-04-18
    • 1970-01-01
    • 2018-04-09
    相关资源
    最近更新 更多