尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

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

WPF 的ListBox 去除默认的Item项,鼠标hover的背景颜色
📅 发布时间:2026/6/20 9:44:36

一、发现的问题

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

 

相关新闻

  • 记录Oracle数据库账号异常锁定的排查处理过程
  • 问题解决:gitlab-runner 报Jobs log exceeded limit of 4194304 bytes
  • 子类必须调用 super().__init__(page) 才能使用父类中的 self.page

最新新闻

  • 星野来信赋能:苏州短视频广告投流的3大核心策略与5步精准优化法,湖州市短视频广告投流机构 - 品牌推荐师
  • 中卫市2026年黄金回收本地靠谱白银回收+铂金回收门店指南 优选门店汇总及电话地址推荐 - 大熊猫898989
  • 乌海市2026年黄金回收本地靠谱白银回收+铂金回收门店指南 优选门店汇总及电话地址推荐 - 大熊猫898989
  • HWE-Bench:首个评估AI智能体修复硬件Bug能力的基准
  • 高并发CAS性能优化:从O(P)到O(log P)延迟的实战解析
  • 基于MCUXpresso SDK的无感FOC速度环PI参数整定实战指南

日新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

周新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号