WPF开发中重写Combox样式遇到的一些问题
在实际的WPF开发过程中,你可能需要自定义ComBox的样式,重写的样式可能不出效果,背景色无法正常显示,或者是显示的内容出现白色遮罩,如以下的效果:
1.ComBox样式如下:
页面展示如下:
<ComboBox.ItemTemplate>
</ComboBox.ItemTemplate>
运行效果如下:


2.原因
这是因为 WPF 默认的 ComboBox 模板中,其子元素(如 ToggleButton、ContentPresenter、Popup 等)有独立的样式,你仅仅设置 Background 并不会影响内部结构,尤其是:
- 下拉按钮(ToggleButton)
- 选中项显示区域
- 下拉列表(Popup)
解决方案:重写 ComboBox 的控件模板(ControlTemplate)
3.重写样式:
使用方式如下:
效果图1:

效果图2:

如果本文介绍对你有帮助,可以一键四连:点赞+评论+收藏+推荐,谢谢!

浙公网安备 33010602011771号