2

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

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

<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 数据绑定?

对不起,我的英语不好。

4

1 回答 1

0

如果您想让它成为数据绑定最合适的地方,imo 将在控件的相关DataTmplate中声明它,您可以在其中指定Style(已由您定义)和应用于控件的数据。

在那里,您可以在您的状态和您希望出现在按钮上的相对颜色之间定义一个转换器。

或者

如果您想将自己限制在 中Style,您可以在其内部定义一个数据绑定Style。海事组织不是很合乎逻辑,但这可能的。

看看这个答案:

通过 WPF 中的 MVVM 模式更改按钮背景颜色

于 2013-04-09T07:00:50.903 回答