C# 如何使用触发器更改ListBox元素的文本颜色?
我有一个ListBox SurfaceListBox,当元素在特定属性上有false时,我需要更改元素的文本颜色 看看我的代码,这很好:C# 如何使用触发器更改ListBox元素的文本颜色?,c#,wpf,winforms,xaml,wpf-controls,C#,Wpf,Winforms,Xaml,Wpf Controls,我有一个ListBox SurfaceListBox,当元素在特定属性上有false时,我需要更改元素的文本颜色 看看我的代码,这很好: <DataTrigger Binding="{Binding IsSelectable}" Value="False"> 但是使用以下方法设置颜色: <Setter Property="Foreground" Value="Black"/> 不起作用,颜色也不会改变 有没有办法解决这个问题,或者其他的方法 <Style x:K
<DataTrigger Binding="{Binding IsSelectable}" Value="False">
但是使用以下方法设置颜色:
<Setter Property="Foreground" Value="Black"/>
不起作用,颜色也不会改变
有没有办法解决这个问题,或者其他的方法
<Style x:Key="CategorySurfaceListBoxItemStyle"
TargetType="{x:Type Custom:SurfaceListBoxItem}"
BasedOn="{StaticResource ControlBaseStyle}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Custom:SurfaceListBoxItem}">
<Grid
x:Name="Grid"
Background="{StaticResource ControlHitAreaBrush}"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}">
<ContentPresenter x:Name="Content" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
<!-- Disable dot items -->
<Style.Triggers>
<DataTrigger Binding="{Binding IsSelectable}" Value="False">
<Setter Property="IsEnabled" Value="False"/>
<Setter Property="Foreground" Value="Black"/> <!--PROBLEM HERE-->
</DataTrigger>
</Style.Triggers>
</Style>
我能够通过以下方式解决问题: 删除任何将设置前景颜色的样式,以避免覆盖颜色。 使用 以下代码:
<Style.Triggers>
<!-- Disable dot items and style -->
<DataTrigger Binding="{Binding IsSelectable}" Value="False">
<Setter Property="IsEnabled" Value="False"/>
<Setter Property="Foreground" Value="Black"/>
</DataTrigger>
<!-- Enable other elements and style -->
<DataTrigger Binding="{Binding IsSelectable}" Value="True">
<Setter Property="IsEnabled" Value="True"/>
<Setter Property="Foreground" Value="#1799c3"/>
</DataTrigger>
</Style.Triggers>
你是否也在其他地方设置前景属性?在格式化修复后,前景属性现在显示在问题中。是的,我有另一种样式。基本上每个项目都有一种颜色,我只需要覆盖一些具有特定属性的元素是的-你忘记了触发器的“True”条件-你的触发器只在False条件下工作。当这是真的时,heppend是什么。您应该添加此案例。感谢Jasper的评论,真实情况的案例已呈现,请查看。谢谢