在好例子网,分享、交流、成长!
您当前所在位置:首页Others 开发实例一般编程问题 → WPF的自定义控件: PropertyGrid、DataGrid、多选TreeView、ColorPicker等

WPF的自定义控件: PropertyGrid、DataGrid、多选TreeView、ColorPicker等

一般编程问题

下载此实例

实例介绍

【实例简介】

控件介绍

控件 描述 状态
PropertyGrid 显示对象或对象集合的属性 稳定
DataGrid 具有“Excel感觉”的数据网格(请注意,该控件不是虚拟化的) 稳定
TreeListBox 类似于TreeView的ListBox(支持多选和拖放) 稳定
ColorPicker 颜色选择器 稳定
RadioButtonList 绑定到枚举的一组单选按钮 稳定
EnumMenuItem 绑定到枚举的一组可选菜单项 稳定
EditableTextBlock 可以转换为TextBox的TextBlock,适用于TreeView中的就地编辑 稳定
FilePicker 带有浏览文件按钮的TextBox 稳定
DirectoryPicker 带有浏览目录按钮的TextBox 稳定
DockPanelSplitter DockPanels的分隔符 稳定
SpinControl 数字上下微调控件 稳定
LinkBlock TextBlock上的超链接 稳定
SliderEx 在拖动滑块时调用IEditableObject.BeginEdit/EndEdit的滑块 稳定
TextBlockEx 包含禁用状态样式的TextBlock 稳定
PopupBox 重新设计的ComboBox,可以将任何内容放入弹出视图 稳定
FormattingTextBox 可以绑定格式化字符串的TextBox 稳定

支持的框架

  • Microsoft .NET 4.6.2或更高版本
  • Microsoft .NET 6

支持的构建环境

  • Visual Studio 2022

【实例截图】

from clipboard


from clipboard


from clipboard


from clipboard

【核心代码】
文件清单
└── PropertyTools-0e2da56440ad24f58e5e743e6811e2f3f67ebd22
    ├── appveyor.yml
    ├── AUTHORS
    ├── CHANGELOG.md
    ├── CONTRIBUTORS
    ├── GitVersion.yml
    ├── Images
    │   ├── AboutDialog.png
    │   ├── ColorPicker2.png
    │   ├── ColorPicker.png
    │   ├── DataGrid.png
    │   ├── icon.png
    │   ├── PropertyDialog.png
    │   ├── PropertyGrid.png
    │   └── TreeListBox.png
    ├── LICENSE
    ├── README.md
    └── Source
        ├── AssemblyInfo.cs
        ├── Examples
        │   ├── Controls
        │   │   ├── ControlDemos
        │   │   │   ├── app.config
        │   │   │   ├── App.xaml
        │   │   │   ├── App.xaml.cs
        │   │   │   ├── ControlDemos.csproj
        │   │   │   ├── ControlDemos.csproj.DotSettings
        │   │   │   ├── Examples.xml
        │   │   │   ├── MainWindow.xaml
        │   │   │   ├── MainWindow.xaml.cs
        │   │   │   ├── Pages
        │   │   │   │   ├── CheckMarkPage.xaml
        │   │   │   │   ├── CheckMarkPage.xaml.cs
        │   │   │   │   ├── ColorPickerPage.xaml
        │   │   │   │   ├── ColorPickerPage.xaml.cs
        │   │   │   │   ├── DirectoryPickerPage.xaml
        │   │   │   │   ├── DirectoryPickerPage.xaml.cs
        │   │   │   │   ├── DockPanelSplitterPage.xaml
        │   │   │   │   ├── DockPanelSplitterPage.xaml.cs
        │   │   │   │   ├── EditableTextBlockAndPropertyGridPage.xaml
        │   │   │   │   ├── EditableTextBlockAndPropertyGridPage.xaml.cs
        │   │   │   │   ├── EditableTextBlockPage.xaml
        │   │   │   │   ├── EditableTextBlockPage.xaml.cs
        │   │   │   │   ├── EnumMenuItemPage.xaml
        │   │   │   │   ├── EnumMenuItemPage.xaml.cs
        │   │   │   │   ├── FilePickerPage.xaml
        │   │   │   │   ├── FilePickerPage.xaml.cs
        │   │   │   │   ├── FormattingTextBoxPage.xaml
        │   │   │   │   ├── FormattingTextBoxPage.xaml.cs
        │   │   │   │   ├── HeaderedEntrySliderPage.xaml
        │   │   │   │   ├── HeaderedEntrySliderPage.xaml.cs
        │   │   │   │   ├── LinkBlockPage.xaml
        │   │   │   │   ├── LinkBlockPage.xaml.cs
        │   │   │   │   ├── PopupBoxPage.xaml
        │   │   │   │   ├── PopupBoxPage.xaml.cs
        │   │   │   │   ├── RadioButtonListPage.xaml
        │   │   │   │   ├── RadioButtonListPage.xaml.cs
        │   │   │   │   ├── SpinControlPage.xaml
        │   │   │   │   ├── SpinControlPage.xaml.cs
        │   │   │   │   ├── TextBlockExPage.xaml
        │   │   │   │   └── TextBlockExPage.xaml.cs
        │   │   │   └── Properties
        │   │   │       └── AssemblyInfo.cs
        │   │   └── DialogDemos
        │   │       ├── 3d.png
        │   │       ├── app.config
        │   │       ├── App.xaml
        │   │       ├── App.xaml.cs
        │   │       ├── DialogDemos.csproj
        │   │       ├── OptionsViewModel.cs
        │   │       ├── Person.cs
        │   │       ├── Properties
        │   │       │   ├── AssemblyInfo.cs
        │   │       │   ├── Settings.Designer.cs
        │   │       │   └── Settings.settings
        │   │       ├── pt32.png
        │   │       ├── pt.png
        │   │       ├── Settings.cs
        │   │       ├── Window1.xaml
        │   │       └── Window1.xaml.cs
        │   ├── DataGrid
        │   │   └── DataGridDemo
        │   │       ├── App.xaml
        │   │       ├── App.xaml.cs
        │   │       ├── DataGridDemo.csproj
        │   │       ├── DataGridDemo.csproj.DotSettings
        │   │       ├── DataTypes
        │   │       │   ├── MassConverter.cs
        │   │       │   ├── Mass.cs
        │   │       │   └── MassValueConverter.cs
        │   │       ├── Examples
        │   │       │   ├── AbsoluteWidthExample.xaml
        │   │       │   ├── AbsoluteWidthExample.xaml.cs
        │   │       │   ├── ArrayOfArrayExample.xaml
        │   │       │   ├── ArrayOfArrayExample.xaml.cs
        │   │       │   ├── ArrayOfDoubleExample.xaml
        │   │       │   ├── ArrayOfDoubleExample.xaml.cs
        │   │       │   ├── AutoFillDisabledExample.xaml
        │   │       │   ├── AutoFillDisabledExample.xaml.cs
        │   │       │   ├── AutoWidthExample.xaml
        │   │       │   ├── AutoWidthExample.xaml.cs
        │   │       │   ├── BackgroundExample.xaml
        │   │       │   ├── BackgroundExample.xaml.cs
        │   │       │   ├── CustomColumnsExample.xaml
        │   │       │   ├── CustomColumnsExample.xaml.cs
        │   │       │   ├── CustomHeaderExample.xaml
        │   │       │   ├── CustomHeaderExample.xaml.cs
        │   │       │   ├── CustomRowsExample.xaml
        │   │       │   ├── CustomRowsExample.xaml.cs
        │   │       │   ├── CustomTypeDescriptorExample.xaml
        │   │       │   ├── CustomTypeDescriptorExample.xaml.cs
        │   │       │   ├── DatatableExample.xaml
        │   │       │   ├── DatatableExample.xaml.cs
        │   │       │   ├── DisabledExample.xaml
        │   │       │   ├── DisabledExample.xaml.cs
        │   │       │   ├── EasyInsertExample.xaml
        │   │       │   ├── EasyInsertExample.xaml.cs
        │   │       │   ├── EnableByAttributeExample.xaml
        │   │       │   ├── EnableByAttributeExample.xaml.cs
        │   │       │   ├── EnableByPropertyExample.xaml
        │   │       │   ├── EnableByPropertyExample.xaml.cs
        │   │       │   ├── ExampleViewModel.cs
        │   │       │   ├── ExceptionExample.xaml
        │   │       │   ├── ExceptionExample.xaml.cs
        │   │       │   ├── ExtendedToolkitExample.xaml
        │   │       │   ├── ExtendedToolkitExample.xaml.cs
        │   │       │   ├── GettingStartedExample.xaml
        │   │       │   ├── GettingStartedExample.xaml.cs
        │   │       │   ├── HeaderFormatStringExample.xaml
        │   │       │   ├── HeaderFormatStringExample.xaml.cs
        │   │       │   ├── InputDirectionExample.xaml
        │   │       │   ├── InputDirectionExample.xaml.cs
        │   │       │   ├── ListOfIntExample.xaml
        │   │       │   ├── ListOfIntExample.xaml.cs
        │   │       │   ├── ListOfList
        │   │       │   │   ├── ListOfListOfBoolExample.xaml
        │   │       │   │   ├── ListOfListOfBoolExample.xaml.cs
        │   │       │   │   ├── ListOfListOfColorExample.xaml
        │   │       │   │   ├── ListOfListOfColorExample.xaml.cs
        │   │       │   │   ├── ListOfListOfFruitExample.xaml
        │   │       │   │   ├── ListOfListOfFruitExample.xaml.cs
        │   │       │   │   ├── ListOfListOfIntExample.xaml
        │   │       │   │   ├── ListOfListOfIntExample.xaml.cs
        │   │       │   │   ├── ListOfListOfMassExample.xaml
        │   │       │   │   └── ListOfListOfMassExample.xaml.cs
        │   │       │   ├── ListOfMassExample.xaml
        │   │       │   ├── ListOfMassExample.xaml.cs
        │   │       │   ├── ListOfObjectExample.xaml
        │   │       │   ├── ListOfObjectExample.xaml.cs
        │   │       │   ├── ListOfPlainObjectCustomColumnsExample.xaml
        │   │       │   ├── ListOfPlainObjectCustomColumnsExample.xaml.cs
        │   │       │   ├── ListOfPlainObjectExample.xaml
        │   │       │   ├── ListOfPlainObjectExample.xaml.cs
        │   │       │   ├── ListOfStringExample.xaml
        │   │       │   ├── ListOfStringExample.xaml.cs
        │   │       │   ├── ListOfVectorExample.xaml
        │   │       │   ├── ListOfVectorExample.xaml.cs
        │   │       │   ├── NaturalSortingExample.xaml
        │   │       │   ├── NaturalSortingExample.xaml.cs
        │   │       │   ├── NullableExample.xaml
        │   │       │   ├── NullableExample.xaml.cs
        │   │       │   ├── NullExample.xaml
        │   │       │   ├── NullExample.xaml.cs
        │   │       │   ├── ObservableCollectionOfDoubleExample.xaml
        │   │       │   ├── ObservableCollectionOfDoubleExample.xaml.cs
        │   │       │   ├── ObservableCollectionOfExampleObjectExample.xaml
        │   │       │   ├── ObservableCollectionOfExampleObjectExample.xaml.cs
        │   │       │   ├── ObservableCollectionOfMassExample.xaml
        │   │       │   ├── ObservableCollectionOfMassExample.xaml.cs
        │   │       │   ├── ObservableCollectionOfStringExample.xaml
        │   │       │   ├── ObservableCollectionOfStringExample.xaml.cs
        │   │       │   ├── RelativeWidthExample.xaml
        │   │       │   ├── RelativeWidthExample.xaml.cs
        │   │       │   ├── ScrollViewerExample.xaml
        │   │       │   ├── ScrollViewerExample.xaml.cs
        │   │       │   ├── SelectedItemsExample.xaml
        │   │       │   ├── SelectedItemsExample.xaml.cs
        │   │       │   ├── SelectorExample.xaml
        │   │       │   ├── SelectorExample.xaml.cs
        │   │       │   ├── StandardDataGrid
        │   │       │   │   ├── GettingStartedExample.xaml
        │   │       │   │   └── GettingStartedExample.xaml.cs
        │   │       │   ├── SyncTableExample.xaml
        │   │       │   ├── SyncTableExample.xaml.cs
        │   │       │   ├── TableExample.xaml
        │   │       │   ├── TableExample.xaml.cs
        │   │       │   ├── TemplateExample.xaml
        │   │       │   ├── TemplateExample.xaml.cs
        │   │       │   ├── ThreadExample.xaml
        │   │       │   ├── ThreadExample.xaml.cs
        │   │       │   ├── ValidationExampleWindow.xaml
        │   │       │   ├── ValidationExampleWindow.xaml.cs
        │   │       │   ├── VectorExample.xaml
        │   │       │   ├── VectorExample.xaml.cs
        │   │       │   ├── WpfDataGridExample.xaml
        │   │       │   ├── WpfDataGridExample.xaml.cs
        │   │       │   └── WrapItems
        │   │       │       ├── ArrayOfObjectExample.xaml
        │   │       │       ├── ArrayOfObjectExample.xaml.cs
        │   │       │       ├── BackgroundBindingSourceExample.xaml
        │   │       │       ├── BackgroundBindingSourceExample.xaml.cs
        │   │       │       ├── IsEnabledBindingSourceExample.xaml
        │   │       │       ├── IsEnabledBindingSourceExample.xaml.cs
        │   │       │       ├── MultitypeMatrixExample.xaml
        │   │       │       ├── MultitypeMatrixExample.xaml.cs
        │   │       │       ├── ObservableCollectionOfObjectExample.xaml
        │   │       │       ├── ObservableCollectionOfObjectExample.xaml.cs
        │   │       │       ├── WrapItemsExample.xaml
        │   │       │       ├── WrapItemsExample.xaml.cs
        │   │       │       ├── WrapItemsOfMassExample.xaml
        │   │       │       └── WrapItemsOfMassExample.xaml.cs
        │   │       ├── MainWindow.xaml
        │   │       ├── MainWindow.xaml.cs
        │   │       ├── Model
        │   │       │   ├── ExampleObject.cs
        │   │       │   ├── Fruit.cs
        │   │       │   ├── PlainOldObject.cs
        │   │       │   ├── StandardCollections.cs
        │   │       │   └── ValidatableObject.cs
        │   │       └── Properties
        │   │           └── AssemblyInfo.cs
        │   ├── ItemsBag
        │   │   └── ItemsBagDemo
        │   │       ├── app.config
        │   │       ├── App.xaml
        │   │       ├── App.xaml.cs
        │   │       ├── ItemsBagDemo.csproj
        │   │       ├── MainWindow.xaml
        │   │       ├── MainWindow.xaml.cs
        │   │       ├── Model.cs
        │   │       └── Properties
        │   │           └── AssemblyInfo.cs
        │   ├── PropertyGrid
        │   │   ├── CustomFactoryDemo
        │   │   │   ├── app.config
        │   │   │   ├── App.xaml
        │   │   │   ├── App.xaml.cs
        │   │   │   ├── Attributes
        │   │   │   │   └── ImportantAttribute.cs
        │   │   │   ├── CustomFactoryDemo.csproj
        │   │   │   ├── Factories
        │   │   │   │   ├── CustomPropertyGridControlFactory.cs
        │   │   │   │   ├── CustomPropertyGridOperator.cs
        │   │   │   │   └── ImportantPropertyItem.cs
        │   │   │   ├── Model
        │   │   │   │   ├── Range.cs
        │   │   │   │   └── TestObject.cs
        │   │   │   ├── Properties
        │   │   │   │   └── AssemblyInfo.cs
        │   │   │   ├── ViewModels
        │   │   │   │   └── MainViewModel.cs
        │   │   │   └── Views
        │   │   │       ├── MainWindow.xaml
        │   │   │       └── MainWindow.xaml.cs
        │   │   ├── PropertyGridDemo
        │   │   │   ├── app.config
        │   │   │   ├── App.xaml
        │   │   │   ├── App.xaml.cs
        │   │   │   ├── Converters
        │   │   │   │   ├── BigIntegerConverter.cs
        │   │   │   │   ├── ComplexConverter.cs
        │   │   │   │   ├── HexConverter.cs
        │   │   │   │   ├── MassConverter.cs
        │   │   │   │   └── MultiValueToStringConverter.cs
        │   │   │   ├── CustomControlFactory.cs
        │   │   │   ├── CustomOperator.cs
        │   │   │   ├── DataTypes
        │   │   │   │   ├── Length.cs
        │   │   │   │   ├── Mass.cs
        │   │   │   │   ├── TestEnumeration.cs
        │   │   │   │   └── UnitUtilities.cs
        │   │   │   ├── Example.cs
        │   │   │   ├── Examples
        │   │   │   │   ├── AdvancedTypesExample.cs
        │   │   │   │   ├── AutomaticDisplayNamesExample.cs
        │   │   │   │   ├── AutoUpdateTextAttributeExample.cs
        │   │   │   │   ├── BrowsableAttributeExample.cs
        │   │   │   │   ├── BrowsableFalseAttributeExample.cs
        │   │   │   │   ├── BrowsableTrueAttributeExample.cs
        │   │   │   │   ├── CategoryAttributeExample.cs
        │   │   │   │   ├── CheckableItemsAttributeExample.cs
        │   │   │   │   ├── CollectionsExample.cs
        │   │   │   │   ├── CommandExample.cs
        │   │   │   │   ├── CommentAttributeExample.cs
        │   │   │   │   ├── ContentAttributeExample.cs
        │   │   │   │   ├── ConverterAttributeExample.cs
        │   │   │   │   ├── DataAnnotationsExample.cs
        │   │   │   │   ├── DataErrorInfoExample.cs
        │   │   │   │   ├── DataTypeAttributeExample.cs
        │   │   │   │   ├── DescriptionAttributeExample.cs
        │   │   │   │   ├── DictionaryExample.cs
        │   │   │   │   ├── DirectoryPathAttributeExample.cs
        │   │   │   │   ├── DisplayNameAttributeExample.cs
        │   │   │   │   ├── EditableAttributeExample.cs
        │   │   │   │   ├── EnableByRadioButtonAttributeExample.cs
        │   │   │   │   ├── EnabledByAttributeExample.cs
        │   │   │   │   ├── EnumsExample.cs
        │   │   │   │   ├── ExceptionExample.cs
        │   │   │   │   ├── FilePathAttributeExample.cs
        │   │   │   │   ├── FillTabAttributeExample.cs
        │   │   │   │   ├── FormatStringAttributeExample.cs
        │   │   │   │   ├── HeaderPlacementAttributeExample.cs
        │   │   │   │   ├── ImageSourceExample.cs
        │   │   │   │   ├── IndentationLevelAttributeExample.cs
        │   │   │   │   ├── ItemsSourcePropertyExample.cs
        │   │   │   │   ├── MetaDataTypeExample.cs
        │   │   │   │   ├── NotifyDataErrorInfoExample.cs
        │   │   │   │   ├── NotifyDataErrorInfoSeverityExample.cs
        │   │   │   │   ├── OptionalAttributeExample.cs
        │   │   │   │   ├── PasswordExample.cs
        │   │   │   │   ├── PerformanceExample.cs
        │   │   │   │   ├── ReadOnlyAttributeExample.cs
        │   │   │   │   ├── sheep.png
        │   │   │   │   ├── SimpleTypesExample.cs
        │   │   │   │   ├── SlidableAttributeExample.cs
        │   │   │   │   ├── SpinnableAttributeExample.cs
        │   │   │   │   ├── SubClassExample.cs
        │   │   │   │   └── VisibleByAttributeExample.cs
        │   │   │   ├── Examples.cs
        │   │   │   ├── FodyWeavers.xml
        │   │   │   ├── FodyWeavers.xsd
        │   │   │   ├── Images
        │   │   │   │   ├── category.png
        │   │   │   │   ├── chart.png
        │   │   │   │   ├── error.png
        │   │   │   │   ├── home2.png
        │   │   │   │   ├── home3.png
        │   │   │   │   ├── home.png
        │   │   │   │   ├── lightbulb1.png
        │   │   │   │   ├── lightbulb.png
        │   │   │   │   └── sheep.png
        │   │   │   ├── LengthConverter.cs
        │   │   │   ├── MainViewModel.cs
        │   │   │   ├── MainWindow.xaml
        │   │   │   ├── MainWindow.xaml.cs
        │   │   │   ├── Properties
        │   │   │   │   └── AssemblyInfo.cs
        │   │   │   ├── PropertyGridDemo.csproj
        │   │   │   ├── PropertyGridExampleAttribute.cs
        │   │   │   └── Validation
        │   │   │       └── ValidationResultEx.cs
        │   │   ├── SimpleDemo
        │   │   │   ├── app.config
        │   │   │   ├── App.xaml
        │   │   │   ├── App.xaml.cs
        │   │   │   ├── MainWindowViewModel.cs
        │   │   │   ├── MainWindow.xaml
        │   │   │   ├── MainWindow.xaml.cs
        │   │   │   ├── MassConverter.cs
        │   │   │   ├── Mass.cs
        │   │   │   ├── Person.cs
        │   │   │   ├── Properties
        │   │   │   │   └── AssemblyInfo.cs
        │   │   │   └── SimpleDemo.csproj
        │   │   └── UndoRedoDemo
        │   │       ├── AppBootstrapper.cs
        │   │       ├── app.config
        │   │       ├── App.xaml
        │   │       ├── Core
        │   │       │   ├── DelegateTraceListener.cs
        │   │       │   ├── UndoableCollection.cs
        │   │       │   └── UndoableObject.cs
        │   │       ├── Model
        │   │       │   └── Measurement.cs
        │   │       ├── Properties
        │   │       │   └── AssemblyInfo.cs
        │   │       ├── UndoRedo
        │   │       │   ├── CollectionChangeUndoRedoAction.cs
        │   │       │   ├── IUndoRedoAction.cs
        │   │       │   ├── PropertyChangeUndoRedoAction.cs
        │   │       │   └── UndoRedoService.cs
        │   │       ├── UndoRedoDemo.csproj
        │   │       ├── ViewModels
        │   │       │   └── ShellViewModel.cs
        │   │       └── Views
        │   │           ├── ShellView.xaml
        │   │           └── TextBoxBehaviors.cs
        │   └── TreeListBox
        │       ├── AddRemoveDemo
        │       │   ├── AddRemoveDemo.csproj
        │       │   ├── App.config
        │       │   ├── App.xaml
        │       │   ├── App.xaml.cs
        │       │   ├── MainWindowViewModel.cs
        │       │   ├── MainWindow.xaml
        │       │   ├── MainWindow.xaml.cs
        │       │   ├── Node.cs
        │       │   └── Properties
        │       │       └── AssemblyInfo.cs
        │       ├── DirectoryDemo
        │       │   ├── app.config
        │       │   ├── App.xaml
        │       │   ├── App.xaml.cs
        │       │   ├── DirectoryDemo.csproj
        │       │   ├── DirectoryViewModel.cs
        │       │   ├── folder.png
        │       │   ├── MainWindow.xaml
        │       │   ├── MainWindow.xaml.cs
        │       │   └── Properties
        │       │       └── AssemblyInfo.cs
        │       └── TreeListBoxDemo
        │           ├── app.config
        │           ├── App.xaml
        │           ├── App.xaml.cs
        │           ├── folder.png
        │           ├── MainWindow.xaml
        │           ├── MainWindow.xaml.cs
        │           ├── Model
        │           │   ├── CompositeNode.cs
        │           │   └── Node.cs
        │           ├── Properties
        │           │   └── AssemblyInfo.cs
        │           ├── TreeListBoxDemo.csproj
        │           └── ViewModel
        │               ├── MainViewModel.cs
        │               ├── NodeViewModel.cs
        │               └── Observable.cs
        ├── PropertyTools
        │   ├── DataAnnotations
        │   │   ├── AutoUpdateTextAttribute.cs
        │   │   ├── BasePathPropertyAttribute.cs
        │   │   ├── BrowsableAttribute.cs
        │   │   ├── CategoryAttribute.cs
        │   │   ├── CheckableItemsAttribute.cs
        │   │   ├── Column.cs
        │   │   ├── ColumnsPropertyAttribute.cs
        │   │   ├── CommentAttribute.cs
        │   │   ├── ContentAttribute.cs
        │   │   ├── ConverterAttribute.cs
        │   │   ├── DefaultExtensionPropertyAttribute.cs
        │   │   ├── DescriptionAttribute.cs
        │   │   ├── DirectoryPathAttribute.cs
        │   │   ├── DisplayMemberPathAttribute.cs
        │   │   ├── DisplayNameAttribute.cs
        │   │   ├── EasyInsertAttribute.cs
        │   │   ├── EditableAttribute.cs
        │   │   ├── EnableByAttribute.cs
        │   │   ├── EnableByRadioButtonAttribute.cs
        │   │   ├── FillTabAttribute.cs
        │   │   ├── FilterPropertyAttribute.cs
        │   │   ├── FontAttribute.cs
        │   │   ├── FontFamilySelectorAttribute.cs
        │   │   ├── FontPreviewAttribute.cs
        │   │   ├── FormatStringAttribute.cs
        │   │   ├── HeaderPlacementAttribute.cs
        │   │   ├── HeaderPlacement.cs
        │   │   ├── HeightAttribute.cs
        │   │   ├── HorizontalAlignmentAttribute.cs
        │   │   ├── HorizontalAlignment.cs
        │   │   ├── IndentationLevelAttribute.cs
        │   │   ├── InputDirectionAttribute.cs
        │   │   ├── InputDirection.cs
        │   │   ├── InputFilePathAttribute.cs
        │   │   ├── ItemHeaderPropertyAttribute.cs
        │   │   ├── ItemsSourcePropertyAttribute.cs
        │   │   ├── ListAttribute.cs
        │   │   ├── ListItemItemsSourcePropertyAttribute.cs
        │   │   ├── OptionalAttribute.cs
        │   │   ├── OutputFilePathAttribute.cs
        │   │   ├── ReadOnlyAttribute.cs
        │   │   ├── ResettableAttribute.cs
        │   │   ├── SelectedValuePathAttribute.cs
        │   │   ├── SelectorStyleAttribute.cs
        │   │   ├── SelectorStyle.cs
        │   │   ├── SlidableAttribute.cs
        │   │   ├── SortIndexAttribute.cs
        │   │   ├── SpinnableAttribute.cs
        │   │   ├── VisibleByAttribute.cs
        │   │   ├── WidePropertyAttribute.cs
        │   │   └── WidthAttribute.cs
        │   ├── DragDrop
        │   │   ├── DropPosition.cs
        │   │   ├── IDragSource.cs
        │   │   └── IDropTarget.cs
        │   ├── Observable
        │   │   └── Observable.cs
        │   ├── PropertyTools.csproj
        │   ├── PropertyTools.csproj.DotSettings
        │   └── PropertyTools.snk
        ├── PropertyTools.AppVeyor.sln
        ├── PropertyTools.sln
        ├── PropertyTools.sln.DotSettings
        ├── PropertyTools.snk
        ├── PropertyTools.Wpf
        │   ├── Behaviors
        │   │   ├── ScreenGrab.cs
        │   │   └── WebBrowserBehavior.cs
        │   ├── Chrome
        │   │   ├── ButtonChrome.cs
        │   │   └── SystemDropShadowChrome.cs
        │   ├── CommandBindings
        │   │   ├── DelegateCommandBinding.cs
        │   │   └── DelegateCommandBinding{T}.cs
        │   ├── Commands
        │   │   └── DelegateCommand.cs
        │   ├── Comparers
        │   │   ├── EnumerableComparer{T}.cs
        │   │   ├── ISortDescriptionComparer.cs
        │   │   ├── NaturalObjectComparer.cs
        │   │   ├── NaturalSortDescriptionComparer.cs
        │   │   └── NaturalStringComparer.cs
        │   ├── Controls
        │   │   ├── Bitmap.cs
        │   │   ├── CheckMark
        │   │   │   ├── CheckMark.cs
        │   │   │   └── Generic.xaml
        │   │   ├── ColorPicker
        │   │   │   ├── ColorPicker.cs
        │   │   │   ├── ColorPickerPanel.cs
        │   │   │   ├── ColorPickerPanelStrings.cs
        │   │   │   ├── ColorPicker.png
        │   │   │   ├── ColorSlider.cs
        │   │   │   ├── Generic.xaml
        │   │   │   ├── HsvControl.cs
        │   │   │   ├── Hsv.png
        │   │   │   └── SpectrumSlider.cs
        │   │   ├── DockPanelSplitter
        │   │   │   ├── DockPanelSplitter.cs
        │   │   │   └── Generic.xaml
        │   │   ├── EditableTextBlock.cs
        │   │   ├── EnumMenuItem.cs
        │   │   ├── FilePicker
        │   │   │   ├── DirectoryPicker.cs
        │   │   │   ├── FilePicker.cs
        │   │   │   ├── Generic.xaml
        │   │   │   ├── IFileDialogService.cs
        │   │   │   └── IFolderBrowserDialogService.cs
        │   │   ├── FormattingTextBox.cs
        │   │   ├── HeaderedEntrySlider
        │   │   │   ├── Generic.xaml
        │   │   │   └── HeaderedEntrySlider.cs
        │   │   ├── LinkBlock.cs
        │   │   ├── PopupBox
        │   │   │   ├── Generic.xaml
        │   │   │   └── PopupBox.cs
        │   │   ├── RadioButtonList
        │   │   │   ├── Generic.xaml
        │   │   │   └── RadioButtonList.cs
        │   │   ├── SliderEx.cs
        │   │   ├── SpinControl
        │   │   │   ├── Generic.xaml
        │   │   │   └── SpinControl.cs
        │   │   ├── StackPanelEx.cs
        │   │   ├── TextBlockEx
        │   │   │   ├── Generic.xaml
        │   │   │   └── TextBlockEx.cs
        │   │   └── TextBoxEx.cs
        │   ├── Converters
        │   │   ├── AllMultiValueConverter.cs
        │   │   ├── BoolToVisibilityConverter.cs
        │   │   ├── BrushToColorConverter.cs
        │   │   ├── ColorToBrushConverter.cs
        │   │   ├── ColorToComponentConverter.cs
        │   │   ├── ColorToHexConverter.cs
        │   │   ├── ColorToStringConverter.cs
        │   │   ├── DataErrorInfoConverter.cs
        │   │   ├── DefinedColorToVisibilityConverter.cs
        │   │   ├── DoubleToGridLengthConverter.cs
        │   │   ├── EnumDescriptionConverter.cs
        │   │   ├── EnumToBooleanConverter.cs
        │   │   ├── EnumValuesConverter.cs
        │   │   ├── FontFamilyConverter.cs
        │   │   ├── GridLengthCollectionConverter.cs
        │   │   ├── HueToColorConverter.cs
        │   │   ├── NotifyDataErrorInfoConverter.cs
        │   │   ├── NullToBoolConverter.cs
        │   │   ├── NullToVisibilityConverter.cs
        │   │   ├── ObjectToDoubleConverter.cs
        │   │   ├── SelfProvider.cs
        │   │   ├── TimeSpanToStringConverter.cs
        │   │   ├── ValidationErrorsToStringConverter.cs
        │   │   ├── ValueToBooleanConverter.cs
        │   │   ├── ValueToVisibilityConverter.cs
        │   │   └── ZeroToVisibilityConverter.cs
        │   ├── DataGrid
        │   │   ├── CellDefinitions
        │   │   │   ├── CellDefinition.cs
        │   │   │   ├── CellDefinitionFactory.cs
        │   │   │   ├── CellDescriptor.cs
        │   │   │   ├── CheckCellDefinition.cs
        │   │   │   ├── ColorCellDefinition.cs
        │   │   │   ├── SelectorCellDefinition.cs
        │   │   │   ├── TemplateCellDefinition.cs
        │   │   │   └── TextCellDefinition.cs
        │   │   ├── CellRange.cs
        │   │   ├── CellRefConverter.cs
        │   │   ├── CellRef.cs
        │   │   ├── ControlFactories
        │   │   │   └── DataGridControlFactory.cs
        │   │   ├── Cursors
        │   │   │   ├── AutoFill.cur
        │   │   │   ├── Cross.cur
        │   │   │   ├── DownArrow.cur
        │   │   │   └── RightArrow.cur
        │   │   ├── DataGridCommands.cs
        │   │   ├── DataGrid.cs
        │   │   ├── DataGrid.md
        │   │   ├── Definitions
        │   │   │   ├── ColumnDefinition.cs
        │   │   │   ├── PropertyDefinition.cs
        │   │   │   ├── RowDefinition.cs
        │   │   │   └── TemplateColumnDefinition.cs
        │   │   ├── Generic.xaml
        │   │   ├── ICellDefinitionFactory.cs
        │   │   ├── IDataGridControlFactory.cs
        │   │   ├── IDataGridOperator.cs
        │   │   ├── Operators
        │   │   │   ├── DataGridOperator.cs
        │   │   │   ├── ListListOperator.cs
        │   │   │   ├── ListOperator.cs
        │   │   │   └── WrapItemsOperator.cs
        │   │   └── VisibilityConverter.cs
        │   ├── Dialogs
        │   │   ├── AboutDialog.xaml
        │   │   ├── AboutDialog.xaml.cs
        │   │   ├── AboutViewModel.cs
        │   │   ├── PropertyDialog.xaml
        │   │   ├── PropertyDialog.xaml.cs
        │   │   ├── Shell32
        │   │   │   └── BrowseForFolderDialog.cs
        │   │   ├── WizardDialog.xaml
        │   │   └── WizardDialog.xaml.cs
        │   ├── Extensions
        │   │   └── ReflectionExtensions.cs
        │   ├── Helpers
        │   │   ├── AutoFiller.cs
        │   │   ├── CaptureScreenshot.cs
        │   │   ├── ColorHelper.cs
        │   │   ├── FormattedTimeSpanParser.cs
        │   │   ├── PasswordHelper.cs
        │   │   ├── ReflectionMath.cs
        │   │   ├── TimeSpanFormatter.cs
        │   │   ├── TimeSpanParser.cs
        │   │   └── TypeHelper.cs
        │   ├── ItemsBag
        │   │   ├── ItemsBag.cs
        │   │   ├── ItemsBagPropertyDescriptor.cs
        │   │   ├── ItemsBagTypeDescriptionProvider.cs
        │   │   └── ItemsBagTypeDescriptor.cs
        │   ├── Properties
        │   │   └── AssemblyInfo.cs
        │   ├── PropertyGrid
        │   │   ├── CategoryControlType.cs
        │   │   ├── Generic.xaml
        │   │   ├── Group.cs
        │   │   ├── IPropertyGridControlFactory.cs
        │   │   ├── IPropertyGridOperator.cs
        │   │   ├── IPropertyGridOptions.cs
        │   │   ├── PropertyControlFactoryOptions.cs
        │   │   ├── PropertyConverter.cs
        │   │   ├── PropertyGridControlFactory.cs
        │   │   ├── PropertyGrid.cs
        │   │   ├── PropertyGridOperator.cs
        │   │   ├── PropertyItem.cs
        │   │   ├── Tab.cs
        │   │   └── TypeEditor.cs
        │   ├── PropertyTools.snk
        │   ├── PropertyTools.Wpf.csproj
        │   ├── PropertyTools.Wpf.csproj.DotSettings
        │   ├── Themes
        │   │   └── Generic.xaml
        │   ├── TreeListBox
        │   │   ├── Common.xaml
        │   │   ├── Generic.xaml
        │   │   ├── InsertionAdorner.cs
        │   │   ├── TreeListBoxAutomationPeer.cs
        │   │   ├── TreeListBox.cs
        │   │   ├── TreeListBoxDragDropHelper.cs
        │   │   └── TreeListBoxItem.cs
        │   └── Utilities
        │       ├── BindingUtilities.cs
        │       └── StringUtilities.cs
        ├── PropertyTools.Wpf.ExtendedToolkit
        │   ├── ExtendedToolkitDataGridControlFactory.cs
        │   ├── Properties
        │   │   └── AssemblyInfo.cs
        │   └── PropertyTools.Wpf.Extended.Toolkit.csproj
        ├── PropertyTools.Wpf.Tests
        │   ├── Comparers
        │   │   └── NaturalStringComparerTests.cs
        │   ├── Converters
        │   │   ├── ConverterTests.cs
        │   │   └── ValueToBooleanConverterTests.cs
        │   ├── Extensions
        │   │   └── ReflectionExtensionsTests.cs
        │   ├── Helpers
        │   │   ├── ColorHelperTests.cs
        │   │   ├── FormattedTimeSpanParserTests.cs
        │   │   ├── ReflectionMathTests.cs
        │   │   ├── TimeSpanFormatterTests.cs
        │   │   ├── TimeSpanParserTests.cs
        │   │   └── TypeHelperTests.cs
        │   └── PropertyTools.Wpf.Tests.csproj
        └── Settings.SourceAnalysis

99 directories, 595 files

实例下载地址

WPF的自定义控件: PropertyGrid、DataGrid、多选TreeView、ColorPicker等

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警