├── .editorconfig
├── .gitattributes
├── .gitignore
├── MyWPF.sln
├── README.md
├── WPFTemplate
├── App.config
├── Command
│ ├── CommandBase.cs
│ └── CommandCenter.cs
├── Controls
│ ├── Chart
│ │ ├── Bar.cs
│ │ ├── BarItem.cs
│ │ ├── Chart.cs
│ │ ├── ChartItem.cs
│ │ ├── CurveChart.cs
│ │ ├── Donut.cs
│ │ ├── LineChart.cs
│ │ └── StepChart.cs
│ ├── Extra
│ │ ├── Badge.cs
│ │ ├── Card.cs
│ │ ├── Carousel.cs
│ │ ├── ColorSlider.xaml
│ │ ├── ColorSlider.xaml.cs
│ │ ├── CornerMultiComboBox.cs
│ │ ├── CornerMultiComboBoxItem.cs
│ │ ├── CornerPagination.cs
│ │ ├── Drawer.cs
│ │ ├── DrawerItem.cs
│ │ ├── Loading.cs
│ │ ├── NoticeBar.cs
│ │ ├── NotifyWindow.xaml
│ │ ├── NotifyWindow.xaml.cs
│ │ ├── PlaceControl.cs
│ │ ├── Steps.cs
│ │ ├── StepsItem.cs
│ │ ├── Toast.cs
│ │ ├── ToastWindow.xaml
│ │ └── ToastWindow.xaml.cs
│ └── Original
│ │ ├── CornerButton.cs
│ │ ├── CornerCalendar.cs
│ │ ├── CornerCheckBox.cs
│ │ ├── CornerCombobox.cs
│ │ ├── CornerContextMenu.cs
│ │ ├── CornerDatePicker.cs
│ │ ├── CornerExpander.cs
│ │ ├── CornerMenu.cs
│ │ ├── CornerMenuItem.cs
│ │ ├── CornerPasswordBox.xaml
│ │ ├── CornerPasswordBox.xaml.cs
│ │ ├── CornerProgressBar.cs
│ │ ├── CornerRadioButton.cs
│ │ ├── CornerSlider.cs
│ │ ├── CornerTabControl.cs
│ │ ├── CornerTabItem.cs
│ │ ├── CornerTextBox.cs
│ │ ├── CornerToolTip.cs
│ │ └── CornerTreeView.cs
├── Enums
│ ├── ButtonEnum.cs
│ ├── CardType.cs
│ ├── CheckBoxEnum.cs
│ ├── NotifySourceEnum.cs
│ ├── PlaceControlEnum.cs
│ ├── ProgressBarEnum.cs
│ ├── RadioButtonEnums.cs
│ ├── SliderEnum.cs
│ ├── TabControlEnum.cs
│ ├── TextBoxEnum.cs
│ └── TreeViewEnum.cs
├── Images
│ └── test.png
├── MainWindow.xaml.cs
├── NotifyPropertyChangedBase.cs
├── Properties
│ ├── AssemblyInfo.cs
│ ├── Resources.Designer.cs
│ ├── Resources.resx
│ ├── Settings.Designer.cs
│ └── Settings.settings
├── Resources
│ ├── Converters.xaml
│ ├── Microsoft.Expression.Drawing.dll
│ └── iconfont.ttf
├── Test
│ └── Models.cs
├── Themes
│ ├── Chart
│ │ ├── BarItem.xaml
│ │ ├── Chart.xaml
│ │ ├── ChartItem.xaml
│ │ └── Donut.xaml
│ ├── Extra
│ │ ├── Card.xaml
│ │ ├── Carousel.xaml
│ │ ├── CornerPagination.xaml
│ │ ├── Drawer.xaml
│ │ ├── DrawerItem.xaml
│ │ ├── Loading.xaml
│ │ ├── NoticeBar.xaml
│ │ ├── PlaceControl.xaml
│ │ ├── Steps.xaml
│ │ └── StepsItem.xaml
│ ├── Generic.xaml
│ └── Original
│ │ ├── CornerButton.xaml
│ │ ├── CornerCalendar.xaml
│ │ ├── CornerCheckBox.xaml
│ │ ├── CornerComboBox.xaml
│ │ ├── CornerContextMenu.xaml
│ │ ├── CornerDatePicker.xaml
│ │ ├── CornerExpander.xaml
│ │ ├── CornerMenu.xaml
│ │ ├── CornerMenuItem.xaml
│ │ ├── CornerMultiComboBox.xaml
│ │ ├── CornerMultiComboBoxItem.xaml
│ │ ├── CornerProgressBar.xaml
│ │ ├── CornerRadioButton.xaml
│ │ ├── CornerSlider.xaml
│ │ ├── CornerTabControl.xaml
│ │ ├── CornerTabItem.xaml
│ │ ├── CornerTextBox.xaml
│ │ ├── CornerToolTip.xaml
│ │ └── CornerTreeView.xaml
├── VMFactory
│ ├── ViewModelBase.cs
│ └── ViewModelFactory.cs
├── WPFTemplate.csproj
├── common
│ ├── ButtonHelper.cs
│ ├── ComboBoxViewFilterHelper.cs
│ ├── Converters.cs
│ ├── LocalLogicalTreeHelper.cs
│ ├── LocalVisualTreeHelper.cs
│ ├── ModelConvertHelper.cs
│ └── TreeViewItemHelper.cs
├── packages.config
├── test.xaml
└── test.xaml.cs
├── Wpf063Demo
├── App.config
├── App.xaml
├── App.xaml.cs
├── MainWindow.xaml
├── MainWindow.xaml.cs
├── Model
│ └── MainFunction.cs
├── Properties
│ ├── AssemblyInfo.cs
│ ├── Resources.Designer.cs
│ ├── Resources.resx
│ ├── Settings.Designer.cs
│ └── Settings.settings
├── Resources
│ ├── logo.png
│ ├── main.png
│ ├── profile4.jpg
│ └── smallpng
│ │ ├── aqdn.png
│ │ ├── fhzx.png
│ │ ├── mmcs.png
│ │ ├── qljs.png
│ │ ├── qsnms.png
│ │ ├── rjgj.png
│ │ ├── sjan.png
│ │ ├── tcgl.png
│ │ ├── wlaq.png
│ │ └── xtqd.png
├── View
│ ├── LoginView.xaml
│ └── LoginView.xaml.cs
├── ViewModel
│ ├── MainViewModel.cs
│ └── ViewModelLocator.cs
├── Wpf063Demo.csproj
└── packages.config
├── WpfBootstrap
├── App.config
├── App.xaml
├── App.xaml.cs
├── Common
│ └── Converters.cs
├── MainWindow.xaml
├── MainWindow.xaml.cs
├── Model
│ ├── CornerPaginationModel.cs
│ ├── Revenue.cs
│ ├── TreeViewModel.cs
│ ├── UnicodeModel.cs
│ └── WorkScream.cs
├── Properties
│ ├── AssemblyInfo.cs
│ ├── Resources.Designer.cs
│ ├── Resources.resx
│ ├── Settings.Designer.cs
│ └── Settings.settings
├── Resources
│ ├── 08.jpg
│ ├── Mountain.jpg
│ ├── Orange.jpg
│ ├── ice.jpg
│ ├── island.jpg
│ ├── profile1.jpg
│ ├── profile10.jpg
│ ├── profile11.jpg
│ ├── profile2.jpg
│ ├── profile3.jpg
│ ├── profile4.jpg
│ ├── profile5.jpg
│ ├── profile6.jpg
│ ├── profile7.jpg
│ ├── profile8.jpg
│ └── profile9.jpg
├── View
│ ├── BadgeView.xaml
│ ├── BadgeView.xaml.cs
│ ├── CardView.xaml
│ ├── CardView.xaml.cs
│ ├── CarouselView.xaml
│ ├── CarouselView.xaml.cs
│ ├── ChartCurveView.xaml
│ ├── ChartCurveView.xaml.cs
│ ├── ChartLineView.xaml
│ ├── ChartLineView.xaml.cs
│ ├── ChartsView.xaml
│ ├── ChartsView.xaml.cs
│ ├── ColorSliderView.xaml
│ ├── ColorSliderView.xaml.cs
│ ├── CornerButtonView.xaml
│ ├── CornerButtonView.xaml.cs
│ ├── CornerCalendarView.xaml
│ ├── CornerCalendarView.xaml.cs
│ ├── CornerCheckBoxView.xaml
│ ├── CornerCheckBoxView.xaml.cs
│ ├── CornerComboBoxView.xaml
│ ├── CornerComboBoxView.xaml.cs
│ ├── CornerContextMenuView.xaml
│ ├── CornerContextMenuView.xaml.cs
│ ├── CornerDatePickerView.xaml
│ ├── CornerDatePickerView.xaml.cs
│ ├── CornerExpanderView.xaml
│ ├── CornerExpanderView.xaml.cs
│ ├── CornerMultiComboBoxView.xaml
│ ├── CornerMultiComboBoxView.xaml.cs
│ ├── CornerPaginationView.xaml
│ ├── CornerPaginationView.xaml.cs
│ ├── CornerPasswordBoxView.xaml
│ ├── CornerPasswordBoxView.xaml.cs
│ ├── CornerProgressBarView.xaml
│ ├── CornerProgressBarView.xaml.cs
│ ├── CornerRadioButtonView.xaml
│ ├── CornerRadioButtonView.xaml.cs
│ ├── CornerSliderView.xaml
│ ├── CornerSliderView.xaml.cs
│ ├── CornerTabControlView.xaml
│ ├── CornerTabControlView.xaml.cs
│ ├── CornerToolTipView.xaml
│ ├── CornerToolTipView.xaml.cs
│ ├── CornerTreeViewView.xaml
│ ├── CornerTreeViewView.xaml.cs
│ ├── DonutView.xaml
│ ├── DonutView.xaml.cs
│ ├── DrawerView.xaml
│ ├── DrawerView.xaml.cs
│ ├── HomeTableEditView.xaml
│ ├── HomeTableEditView.xaml.cs
│ ├── HomeView.xaml
│ ├── HomeView.xaml.cs
│ ├── HoverView.xaml
│ ├── HoverView.xaml.cs
│ ├── LoadingView.xaml
│ ├── LoadingView.xaml.cs
│ ├── NoticeBarView.xaml
│ ├── NoticeBarView.xaml.cs
│ ├── NotifyWindowView.xaml
│ ├── NotifyWindowView.xaml.cs
│ ├── PlaceControlView.xaml
│ ├── PlaceControlView.xaml.cs
│ ├── StepsView.xaml
│ ├── StepsView.xaml.cs
│ ├── ToastView.xaml
│ ├── ToastView.xaml.cs
│ ├── UnicodeView.xaml
│ └── UnicodeView.xaml.cs
├── ViewModel
│ ├── CornerPaginationViewModel.cs
│ ├── HomeViewModel.cs
│ ├── MainViewModel.cs
│ ├── TreeViewViewModel.cs
│ └── UnicodeViewModel.cs
├── ViewModelFactory
│ └── VmFactory.cs
└── WpfBootstrap.csproj
└── WpfQQDemo
├── App.config
├── App.xaml
├── App.xaml.cs
├── Data
└── Db.cs
├── MainWindow.xaml
├── MainWindow.xaml.cs
├── Model
├── GroupUser.cs
├── QQGroup.cs
├── QQMessage.cs
├── QQRelation.cs
└── QQUser.cs
├── Properties
├── AssemblyInfo.cs
├── Resources.Designer.cs
├── Resources.resx
├── Settings.Designer.cs
└── Settings.settings
├── Resources
├── profile5.jpg
├── profile6.jpg
├── profile7.jpg
├── profile8.jpg
└── profile9.jpg
├── ViewModel
└── QQViewModel.cs
├── VmFactory.cs
├── WpfQQDemo.csproj
└── WpfQQDemo.csproj.user
/.editorconfig:
--------------------------------------------------------------------------------
1 | [*.cs]
2 |
3 | # CS8618: 在退出构造函数时,不可为 null 的字段必须包含非 null 值。请考虑声明为可以为 null。
4 | dotnet_diagnostic.CS8618.severity = none
5 |
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | ###############################################################################
2 | # Set default behavior to automatically normalize line endings.
3 | ###############################################################################
4 | * text=auto
5 |
6 | ###############################################################################
7 | # Set default behavior for command prompt diff.
8 | #
9 | # This is need for earlier builds of msysgit that does not have it on by
10 | # default for csharp files.
11 | # Note: This is only used by command line
12 | ###############################################################################
13 | #*.cs diff=csharp
14 |
15 | ###############################################################################
16 | # Set the merge driver for project and solution files
17 | #
18 | # Merging from the command prompt will add diff markers to the files if there
19 | # are conflicts (Merging from VS is not affected by the settings below, in VS
20 | # the diff markers are never inserted). Diff markers may cause the following
21 | # file extensions to fail to load in VS. An alternative would be to treat
22 | # these files as binary and thus will always conflict and require user
23 | # intervention with every merge. To do so, just uncomment the entries below
24 | ###############################################################################
25 | #*.sln merge=binary
26 | #*.csproj merge=binary
27 | #*.vbproj merge=binary
28 | #*.vcxproj merge=binary
29 | #*.vcproj merge=binary
30 | #*.dbproj merge=binary
31 | #*.fsproj merge=binary
32 | #*.lsproj merge=binary
33 | #*.wixproj merge=binary
34 | #*.modelproj merge=binary
35 | #*.sqlproj merge=binary
36 | #*.wwaproj merge=binary
37 |
38 | ###############################################################################
39 | # behavior for image files
40 | #
41 | # image files are treated as binary by default.
42 | ###############################################################################
43 | #*.jpg binary
44 | #*.png binary
45 | #*.gif binary
46 |
47 | ###############################################################################
48 | # diff behavior for common document formats
49 | #
50 | # Convert binary document formats to text before diffing them. This feature
51 | # is only available from the command line. Turn it on by uncommenting the
52 | # entries below.
53 | ###############################################################################
54 | #*.doc diff=astextplain
55 | #*.DOC diff=astextplain
56 | #*.docx diff=astextplain
57 | #*.DOCX diff=astextplain
58 | #*.dot diff=astextplain
59 | #*.DOT diff=astextplain
60 | #*.pdf diff=astextplain
61 | #*.PDF diff=astextplain
62 | #*.rtf diff=astextplain
63 | #*.RTF diff=astextplain
64 |
--------------------------------------------------------------------------------
/MyWPF.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio Version 17
4 | VisualStudioVersion = 17.0.31903.59
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WPFTemplate", "WPFTemplate\WPFTemplate.csproj", "{9CE3053E-547F-47F4-A087-0224A3953218}"
7 | EndProject
8 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WpfBootstrap", "WpfBootstrap\WpfBootstrap.csproj", "{C83A8E57-F415-47B7-A041-6BC8590BC1AF}"
9 | EndProject
10 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Wpf063Demo", "Wpf063Demo\Wpf063Demo.csproj", "{FF9FAF19-3CD3-4D97-948C-B3019D887F74}"
11 | EndProject
12 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WpfQQDemo", "WpfQQDemo\WpfQQDemo.csproj", "{6CBC005D-E23C-47EF-B84E-045ED0DC6C02}"
13 | EndProject
14 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WpfTest", "WpfTest\WpfTest.csproj", "{31509D7E-921B-4201-B71A-CD3168EF9C34}"
15 | EndProject
16 | Global
17 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
18 | Debug|Any CPU = Debug|Any CPU
19 | Release|Any CPU = Release|Any CPU
20 | EndGlobalSection
21 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
22 | {9CE3053E-547F-47F4-A087-0224A3953218}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
23 | {9CE3053E-547F-47F4-A087-0224A3953218}.Debug|Any CPU.Build.0 = Debug|Any CPU
24 | {9CE3053E-547F-47F4-A087-0224A3953218}.Release|Any CPU.ActiveCfg = Release|Any CPU
25 | {9CE3053E-547F-47F4-A087-0224A3953218}.Release|Any CPU.Build.0 = Release|Any CPU
26 | {C83A8E57-F415-47B7-A041-6BC8590BC1AF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
27 | {C83A8E57-F415-47B7-A041-6BC8590BC1AF}.Debug|Any CPU.Build.0 = Debug|Any CPU
28 | {C83A8E57-F415-47B7-A041-6BC8590BC1AF}.Release|Any CPU.ActiveCfg = Release|Any CPU
29 | {C83A8E57-F415-47B7-A041-6BC8590BC1AF}.Release|Any CPU.Build.0 = Release|Any CPU
30 | {FF9FAF19-3CD3-4D97-948C-B3019D887F74}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
31 | {FF9FAF19-3CD3-4D97-948C-B3019D887F74}.Debug|Any CPU.Build.0 = Debug|Any CPU
32 | {FF9FAF19-3CD3-4D97-948C-B3019D887F74}.Release|Any CPU.ActiveCfg = Release|Any CPU
33 | {FF9FAF19-3CD3-4D97-948C-B3019D887F74}.Release|Any CPU.Build.0 = Release|Any CPU
34 | {6CBC005D-E23C-47EF-B84E-045ED0DC6C02}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
35 | {6CBC005D-E23C-47EF-B84E-045ED0DC6C02}.Debug|Any CPU.Build.0 = Debug|Any CPU
36 | {6CBC005D-E23C-47EF-B84E-045ED0DC6C02}.Release|Any CPU.ActiveCfg = Release|Any CPU
37 | {6CBC005D-E23C-47EF-B84E-045ED0DC6C02}.Release|Any CPU.Build.0 = Release|Any CPU
38 | {31509D7E-921B-4201-B71A-CD3168EF9C34}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
39 | {31509D7E-921B-4201-B71A-CD3168EF9C34}.Debug|Any CPU.Build.0 = Debug|Any CPU
40 | {31509D7E-921B-4201-B71A-CD3168EF9C34}.Release|Any CPU.ActiveCfg = Release|Any CPU
41 | {31509D7E-921B-4201-B71A-CD3168EF9C34}.Release|Any CPU.Build.0 = Release|Any CPU
42 | EndGlobalSection
43 | GlobalSection(SolutionProperties) = preSolution
44 | HideSolutionNode = FALSE
45 | EndGlobalSection
46 | GlobalSection(ExtensibilityGlobals) = postSolution
47 | SolutionGuid = {EDB38FA8-A7D3-4CDC-8507-D6DA73CEC9A8}
48 | EndGlobalSection
49 | EndGlobal
50 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/WPFTemplate/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/WPFTemplate/Command/CommandBase.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Windows;
7 | using System.Windows.Input;
8 |
9 | namespace WPFTemplate
10 | {
11 | public class CommandBase : ICommand
12 | {
13 | public event EventHandler CanExecuteChanged;
14 |
15 | public Action