前言
今天大姚给大家分享一款开源(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为启动项目,运行查看效果:









