我有这种简单的风格,在ListBox
被禁用时不会更改Background
ListBox
:
<Style TargetType="ListBox" >
<Style.Triggers>
<Trigger Property="IsEnabled" Value="True">
<Setter Property="Background" Value="Red"/>
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Background" Value="Orange"/>
</Trigger>
</Style.Triggers>
</Style>
Snoop对我没有帮助,如果没有覆盖模板,我无法想出一个简单的方法。任何人都有一个简单的方法让这个工作? TIA。
答案 0 :(得分:2)
执行此操作的唯一方法是覆盖模板
答案 1 :(得分:0)
只需更改内置模板使用的颜色,即可在禁用列表框时更改列表框本身的背景颜色。您可以通过样式资源执行此操作。只需将以下代码粘贴到Listbox元素中,当您禁用该框时,背景将是透明的。
<ListBox.Style>
<Style TargetType="{x:Type ListBox}">
<Style.Resources>
<SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="Transparent"/>
</Style.Resources>
</Style>
</ListBox.Style>
当突出显示单个项目的背景颜色以及当框失去焦点时,想要修改它的背景颜色也很常见..要更改这些,您可以参考这篇文章: https://stackoverflow.com/a/7298301/1721136