gpt4 book ai didi

wpf - 为什么我不能在 WPF 中设置所选 ListBoxItem 的背景颜色?

转载 作者:行者123 更新时间:2023-12-04 16:32:59 24 4
gpt4 key购买 nike

当用户单击 ListBoxItem 时,我希望它是
一个大胆的
更大
字体红色
背景黄色

除背景外,一切正常。
似乎所选项目有标准(蓝色)背景。
如何覆盖它并更改选定的背景黄色?

这是代码:

<Window x:Class="AlternateListBox2.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300"
xmlns:local="clr-namespace:AlternateListBox2">
<Window.Resources>
<local:Countries x:Key="countries"/>
<Style TargetType="{x:Type ListBoxItem}">
<Setter Property="Content" Value="{Binding Path=Name}"/>
<Setter Property="Margin" Value="2"/>
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="FontWeight" Value="Bold"/>
<Setter Property="FontSize" Value="18"/>
<Setter Property="Background" Value="Yellow"/>
<Setter Property="Foreground" Value="Red"/>
</Trigger>
</Style.Triggers>

</Style>
</Window.Resources>
<StackPanel>
<ListBox
ItemsSource="{Binding Source={StaticResource countries}}"
Width="100"
Margin="10"
HorizontalAlignment="Left"
/>
</StackPanel>
</Window>

最佳答案

它可以做得更简单。所选列表框项目的背景颜色取自 SystemColors。因此,您需要做的是覆盖 ListBox 资源中的 SystemColors:

<ListBox.Resources>
<!--Selected color when the ListBox is focused-->
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Yellow" />
<!--Selected color when the ListBox is not focused-->
<SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="Yellow" />
</ListBox.Resources>

关于wpf - 为什么我不能在 WPF 中设置所选 ListBoxItem 的背景颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/491293/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com