当前位置: 首页 > news >正文

WPF 的ListBox 去除默认的Item项,鼠标hover的背景颜色

一、发现的问题

1、最近在做一个新的桌面应用:多屏协同。里边的UI好多使用到了ListBox的。如下图所示

image

 2、使用的Xmal的样式如下:

    <!--设备列表--><Border Grid.Row="0" Grid.Column="1"><ListBox ItemsSource="{Binding DeviceUserInfos}" Style="{StaticResource Style.ListBox.Simple}" ScrollViewer.HorizontalScrollBarVisibility="Disabled" ScrollViewer.VerticalScrollBarVisibility="Visible"><!--重写ListBox的控件模板--><ListBox.Template><ControlTemplate><Grid><ScrollViewer Style="{StaticResource Style.ScrollViewer.Default}" ManipulationBoundaryFeedback="UIElement_OnManipulationBoundaryFeedback"><ItemsPresenter /></ScrollViewer></Grid></ControlTemplate></ListBox.Template><ListBox.ItemTemplate><DataTemplate><controls:DeviceUserItem Width="{Binding ActualWidth,RelativeSource={RelativeSource AncestorType=ListBox},Converter={StaticResource ListBoxWidthConverter}}" Height="100" DeviceUserStatus="{Binding DeviceUserStatus}" DeviceName="{Binding DeviceName}" DeviceUserColor="{Binding DeviceUserColor}"/></DataTemplate></ListBox.ItemTemplate></ListBox></Border>

在上图会发现,鼠标移动上去了之后,选中的Item项会有浅蓝色的默认背景,这个显然跟UI给出的需求明显不符合。

 

二、解决问题:

1、增加对ListBoxItem的ItemContainerStyles的控件模板的重写

 <Style x:Key="ItemContainerStyles" TargetType="ListBoxItem"><Setter Property="SnapsToDevicePixels" Value="true"/><Setter Property="FocusVisualStyle" Value="{x:Null}"/><Setter Property="Template"><Setter.Value><ControlTemplate TargetType="ListBoxItem"><Border Name="Border"Padding="7" Background="Transparent" SnapsToDevicePixels="True"><ContentPresenter /></Border><ControlTemplate.Triggers><Trigger Property="IsEnabled" Value="false"><Setter Property="Foreground" Value="LightGray"/></Trigger></ControlTemplate.Triggers></ControlTemplate></Setter.Value></Setter></Style>

2、ListBox的ItemContainerStyles 引用 ListBoxItem的样式:

ItemContainerStyle="{StaticResource ItemContainerStyles}"
  <!--设备列表--><Border Grid.Row="0" Grid.Column="1"><ListBox ItemsSource="{Binding DeviceUserInfos}" Style="{StaticResource Style.ListBox.Simple}" ScrollViewer.HorizontalScrollBarVisibility="Disabled" 
ScrollViewer.VerticalScrollBarVisibility
="Visible"
ItemContainerStyle
="{StaticResource ItemContainerStyles}"><!--重写ListBox的控件模板--><ListBox.Template><ControlTemplate><Grid><ScrollViewer Style="{StaticResource Style.ScrollViewer.Default}" ManipulationBoundaryFeedback="UIElement_OnManipulationBoundaryFeedback"><ItemsPresenter /></ScrollViewer></Grid></ControlTemplate></ListBox.Template><ListBox.ItemTemplate><DataTemplate><controls:DeviceUserItem Width="{Binding ActualWidth,RelativeSource={RelativeSource AncestorType=ListBox},Converter={StaticResource ListBoxWidthConverter}}" Height="100" DeviceUserStatus="{Binding DeviceUserStatus}" DeviceName="{Binding DeviceName}" DeviceUserColor="{Binding DeviceUserColor}"/></DataTemplate></ListBox.ItemTemplate></ListBox></Border>

3、添加完ListBoxItem 样式如下:背景颜色跟UI相符

image

 

http://www.jsqmd.com/news/32490/

相关文章:

  • 不止高精度!正点原子 EL15 深度解析:精度、性价比全拉满!
  • 记录Oracle数据库账号异常锁定的排查处理过程
  • CF1770F Koxia and Sequence
  • 问题解决:gitlab-runner 报Jobs log exceeded limit of 4194304 bytes
  • 数据采集与融合技术实践2
  • NOIP 模拟赛 2 总结
  • 利用点击劫持漏洞触发XSS攻击:我是如何赚取350美元的
  • 人狗大战Ⅳ
  • 子类必须调用 super().__init__(page) 才能使用父类中的 self.page
  • 2025 年 11 月底盘悬挂减震气囊,空气弹簧减震气囊厂家最新推荐:产能、专利、环保三维数据透视
  • 2025 年板材源头厂家最新推荐排行榜:聚焦绿色生产与环保认证,精选七家优质企业深度解析
  • 2025年智能家居产品品牌推荐排行 top 5
  • 2025年智能家居产品品牌推荐排行:权威榜单与选择指南
  • 智能家居产品品牌怎么选择:2025年最新攻略
  • 2025 年 11 月驾驶室减震气囊,卡车底盘减震气囊,座椅减震气囊厂家最新推荐,产能、专利、环保三维数据透视!
  • Web3 去魅:写给程序员和普通人的技术解读
  • 上海代理记账服务年度排名:代理记账哪家强?
  • 2025年床垫品牌加盟哪家口碑好?床垫品牌加盟推荐
  • 2025年度全自动四辊卷板机制造商推荐:四辊卷板机哪家好
  • 2025 年最新洗车机厂家推荐排行榜:权威测评下智能 / 自助 / 共享等类型优质企业全景指南
  • 异步FIFO
  • 2025 洗车设备厂家最新推荐排行榜:全自动 / 自助设备企业实力测评与权威选购指南
  • 视频编码标准发展史
  • 2025 年安全触边厂家最新推荐榜:聚焦品质服务商,结合权威测评与市场口碑的全面选购指南防爆灵敏安全触边/无人车安全触边公司推荐
  • 096_尚硅谷_多重循环应用案例
  • 2025 年减震气囊厂家最新推荐榜权威发布:39 项专利企业领衔,驾驶室 / 卡车底盘 / 空气弹簧气囊甄选指南
  • 2025 年 11 月列管冷凝器,列管式冷凝器,不锈钢冷凝器厂家最新推荐,聚焦资质、案例、售后的五家企业深度解读!
  • 2025 年安全地毯源头厂家最新推荐排行榜:聚焦 IP65 防护与 30ms 快速响应,权威测评实力企业全解析防滑安全地毯/机械防护安全地毯/橡胶安全地毯公司推荐
  • 2025年矿用本安型低速图像处理摄像仪厂家权威推荐榜单:矿用本安型显示屏/本安型海思3403主板/本安型海思3519D主板源头厂家精选
  • 【转载】(修改版本)浮点数的表现形式