前言
今天大姚给大家分享一款开源(MIT license)、免费的 WPF 自定义控件集,对于正在学习或开发 WPF 应用、希望深入了解自定义控件实现原理的同学来说,具有很高的参考和借鉴价值。
项目介绍
PropertyTools 是一款开源(MIT license)、免费的 WPF 自定义控件集,该控件集涵盖了 PropertyGrid、DataGrid、支持多选的 TreeView、ColorPicker 等常用控件。
支持的.NET版本

控件介绍
当然可以,以下是去掉"状态"列后的中文表格:
| 控件名称 | 描述 |
|---|---|
| PropertyGrid(属性网格) | 显示单个对象或一组对象的属性的控件。 |
| DataGrid(数据表格) | 具有"Excel 风格"的数据表格控件(注意:该控件未实现虚拟化)。 |
| TreeListBox(树形列表框) | 外观和行为类似 TreeView 的 ListBox,支持多选和拖放操作。 |
| ColorPicker(颜色选择器) | 用于选择颜色的控件。 |
| RadioButtonList(单选按钮列表) | 一组绑定到枚举(enum)的单选按钮。 |
| EnumMenuItem(枚举菜单项) | 一组可勾选的菜单项,绑定到枚举(enum)。 |
| EditableTextBlock(可编辑文本块) | 一种可在 TextBlock 和 TextBox 之间切换的控件,适用于在 TreeView 中进行就地编辑。 |
| FilePicker(文件选择器) | 带有"浏览文件"按钮的 TextBox。 |
| DirectoryPicker(目录选择器) | 带有"浏览文件夹"按钮的 TextBox。 |
| DockPanelSplitter(停靠面板分割条) | 用于 DockPanel 的分割条控件。 |
| SpinControl(数值调节框) | 带有上下箭头的数字输入控件(数值微调器)。 |
| LinkBlock(超链接文本块) | 在 TextBlock 上实现超链接功能的控件。 |
| SliderEx(增强滑块) | 一种 Slider,在拖动滑块时会调用 IEditableObject.BeginEdit/EndEdit 方法。 |
| TextBlockEx(增强文本块) | 支持禁用状态样式的 TextBlock。 |
| PopupBox(弹出框) | 重新样式化的 ComboBox,允许在弹出视图中放置任意内容。 |
| FormattingTextBox(格式化文本框) | 可绑定格式化字符串的 TextBox。 |
项目源代码

控件效果查看
设置ControlDemos为启动项目,运行查看效果:









项目源码地址
更多项目实用功能和特性欢迎前往项目开源地址查看👀,别忘了给项目一个Star支持💖。
- GitHub开源地址: github.com/PropertyToo...
优秀项目和框架精选
该项目已收录到C#/.NET/.NET Core优秀项目和框架精选中,关注优秀项目和框架精选能让你及时了解C#、.NET和.NET Core领域的最新动态和最佳实践,提高开发工作效率和质量。坑已挖,欢迎大家踊跃提交PR推荐或自荐(让优秀的项目和框架不被埋没🤞)。
- GitHub开源地址: github.com/YSGStudyHar...
- Gitee开源地址: gitee.com/ysgdaydayup...