Wpf 禁用列表框不会更改样式中的背景色
我有一个简单的样式,当禁用Wpf 禁用列表框不会更改样式中的背景色,wpf,background,listbox,styles,disabled-control,Wpf,Background,Listbox,Styles,Disabled Control,我有一个简单的样式,当禁用列表框时,它不会改变列表框的背景: <Style TargetType="ListBox" > <Style.Triggers> <Trigger Property="IsEnabled" Value="True"> <Setter Property="Background" Value="Red"/> </Tri
列表框时,它不会改变列表框的背景:
<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.唯一的方法是覆盖模板当禁用列表框时,您可以通过更改内置模板使用的颜色来更改列表框本身的背景颜色。您可以通过样式资源来实现这一点。只需将下面的代码粘贴到Listbox元素中,当您禁用该框时,背景将是透明的
<ListBox.Style>
<Style TargetType="{x:Type ListBox}">
<Style.Resources>
<SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="Transparent"/>
</Style.Resources>
</Style>
</ListBox.Style>
当一个项目高亮显示且方框失去焦点时,想要修改其背景色也是很常见的。。要更改这些内容,您可以参考以下文章:
你也在列表框上设置了背景吗?@H.B-然后他会覆盖样式列表框的颜色。这篇文章可能会引导你找到答案@迈尔斯基:这正是我的观点。@H.B.-我还是不明白你的评论。除了IsEnabled=False之外,触发器是有效的,那么他为什么要覆盖他的样式呢。他需要做一个模板,就像唯一的方法一样。你能分享你覆盖ListBox模板的工作示例代码吗。因为在我重写ListBox模板后,它对我不起作用