WPF之设置ListBox的选中颜色和去掉滚动条
1.去掉滚动条
想要去掉滚动条并且让滚动效果依然生生效,只需要设置ScrollViewer为disable即可
如果是关闭竖向滚动条就是vertical,横向就是horizontal
如果设置为hidden则滚动条不生效了
<ListBox Grid.Column="1"
ScrollViewer.VerticalScrollBarVisibility="Disabled"
</ListBox>
2.设置背景颜色
最简单能想到的就是在ItemContainerStyle的style中设置一个触发器,但是这样的方式无法对背景颜色生效,可能是自带的触发器优先级较高,自己设置的无法生效。
正确的方式是重写listBoxItem的模板,如下
<Window.Resources>
<Style x:Key="_ListBoxItemStyle" TargetType="ListBoxItem">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListBoxItem">
<Border Name="_Border"
Padding="2"
SnapsToDevicePixels="true">
<ContentPresenter />
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsSelected" Value="true">
<Setter TargetName="_Border" Property="Background" Value="Blue"/>
<Setter Property="Foreground" Value="Red"/>
</Trigger>
<Trigger Property="IsMouseOver" Value="true">
<Setter TargetName="_Border" Property="Background" Value="Blue"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
使用:
<ListBox Grid.Column="1"
ItemContainerStyle="{StaticResource _ListBoxItemStyle}"
ScrollViewer.VerticalScrollBarVisibility="Disabled"
ItemsSource="{Binding Strs}">
</ListBox>