3 回答
TA贡献1802条经验 获得超5个赞
您需要使用ListBox.ItemContainerStyle。
ListBox.ItemTemplate指定应如何显示项目的内容。但是WPF仍将每个项目包装在ListBoxItem控件中,默认情况下,如果选中它,则将其Background设置为系统突出显示颜色。您不能停止WPF创建ListBoxItem控件,但是可以为它们设置样式(在您的情况下,将Background设置为始终为Transparent或Black或其他颜色),并使用ItemContainerStyle。
juFo的答案显示了一种可能的实现方式,即在项目样式的上下文内“劫持”系统背景画笔资源;另一种可能更惯用的技术是对SetterBackground属性使用。
TA贡献1943条经验 获得超7个赞
<UserControl.Resources>
<Style x:Key="myLBStyle" TargetType="{x:Type ListBoxItem}">
<Style.Resources>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}"
Color="Transparent"/>
</Style.Resources>
</Style>
</UserControl.Resources>
和
<ListBox ItemsSource="{Binding Path=FirstNames}"
ItemContainerStyle="{StaticResource myLBStyle}">
您只需覆盖listboxitem的样式(请参阅:TargetType是ListBoxItem)
- 3 回答
- 0 关注
- 1170 浏览
添加回答
举报