禁用按钮上的“IsEnabled = false”颜色更改?

时间:2013-04-09 06:55:12

标签: c# wpf xaml button isenabled

我希望在禁用按钮时避免按钮的颜色变化。 如果禁用或不使用,按钮颜色应该相同。

使用样式我可以在禁用后更改背景颜色:

<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数据包?

抱歉我的英语不好。

1 个答案:

答案 0 :(得分:0)

如果你想让它成为数据融合最合适的地方,imo,在你的控件的相对DataTmplate内声明它,你指定Style(已经由你定义)和数据应用于控件。

在那里,您可以在要显示在按钮上的状态和相对颜色之间定义Converter

如果您想限制自己Style,可以在Style内部定义数据绑定。 Imo不太符合逻辑,但可能

看看这个答案:

Change Button Background color through MVVM pattern in WPF