如何在按下列表框中的默认背景时更改它

本文关键字:背景 默认 列表 | 更新日期: 2023-09-27 18:36:48

我正在使用几个列表框来显示我从Web服务获得的数据。此外,我还确定了数据的显示方式。一切正常。我遇到的唯一问题是,当我单击任何 ListBoxItem 并且它们没有覆盖列表框的整个高度时,剩余的空间将其背景更改为默认颜色,例如:白烟或类似的东西。

我正在使用 ItemDataTemplate 来显示自定义数据,并使用 ItemContainerStyle 来更改列表框在任何状态下的交互方式,例如:按下、选中、取消焦点等。

有没有人知道如何改变这一点?

问候!

如何在按下列表框中的默认背景时更改它

我猜你会遇到这样的情况:你的列表项没有一直延伸到列表框,所以你看到它们下面的突出显示,你可以用

  <ListBox.Resources>
      <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Transparent" />
      <SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="Transparent" />  
   </ListBox.Resources>

如果要覆盖listbox的默认背景,请在WPFxaml中写入:

 <Style TargetType="{x:Type ListBox}" >
            <Setter Property="Background" Value="thecoloryouwant" />
        </Style>

如果我理解正确,您想设置ListBoxItemBackground属性...你可以这样做:

<ListBox ItemsSource="{Binding SomeCollection}">
    <ListBox.ItemContainerStyle>
        <Style>
            <Setter Property="Control.Background" Value="WhiteSmoke" />
        </Style>
    </ListBox.ItemContainerStyle>
</ListBox>