【问题标题】:Change Checkbox Opacity in Style not working更改样式中的复选框不透明度不起作用
【发布时间】:2018-09-29 02:32:03
【问题描述】:

我有一个禁用的CheckBox,当IsCheckedTrue 时,我想通过Style 更改Opacity

问题:Opacity 没有改变。

<Style TargetType="{x:Type CheckBox}">
                <Setter Property="IsChecked"
                        Value="False" />
                <Style.Triggers>
                    <Trigger Property="IsChecked"
                             Value="True">
                        <Setter Property="CheckBox.Opacity"
                                Value="1.0" />
                   </Trigger>
                </Style.Triggers>
</Style>


<CheckBox  IsChecked="{Binding IsChecked, Mode=OneWay}" IsEnabled="False"/>

【问题讨论】:

  • 当启用 false 时,改变的是画笔而不是不透明度。更改模板以避免这种情况。如果它们是使用的系统画笔,则可以改为在复选框中覆盖它们在资源中的值。

标签: wpf checkbox opacity


【解决方案1】:

您将不透明度设置为 1.0(100% 不透明),这是默认值。这就是为什么在选中复选框时看不到任何更改的原因。如果您将值设置为介于 0.0 和 1 之间的值(例如 0.5),则选中复选框时会看到不透明度发生变化。

【讨论】:

  • 不要忘记 CheckBox IsEnabled 是 false,这使得 opaque 小于 1。我正在尝试将其恢复到 1.0
  • 啊,我明白了,这与我理解您所问的问题不同。当 IsEnabled 为 false 时,不透明度仍为 1。变化的是组成复选框 ControlTemplate 的控件上的值。您可以覆盖该模板以使复选框在禁用时看起来像您想要的那样。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-06
  • 1970-01-01
  • 2013-03-04
  • 2012-03-26
  • 1970-01-01
相关资源
最近更新 更多