From 880a0eefba174e22dddd8ff63ffc4b85a3a0f22a Mon Sep 17 00:00:00 2001 From: NaBian <836904362@qq.com> Date: Fri, 19 Oct 2018 14:47:43 +0800 Subject: [PATCH] update to v1.3.4 1. add datagrid style 2. improve the numericupdown 3. add checkbox style 4. add listbox demo 5. add treeview demo 6. add border demo 7. remove angle property of iconelement 8. add menu demo --- .../Controls/Attach/DataGridAttach.cs | 211 +++++++++++++ HandyControl/Controls/Attach/EdgeElement.cs | 47 +++ HandyControl/Controls/Attach/IconElement.cs | 13 - .../Controls/Window/WindowBorderless.cs | 11 + HandyControl/HandyControl.csproj | 14 + HandyControl/HandyControl.csproj.user | 6 + HandyControl/Properties/AssemblyInfo.cs | 4 +- HandyControl/Themes/Basic/Geometries.xaml | 1 + .../Themes/Styles/Base/ButtonBaseStyle.xaml | 9 +- .../Themes/Styles/Base/CheckBoxBaseStyle.xaml | 86 ++++++ .../Themes/Styles/Base/ComboBoxBaseStyle.xaml | 2 +- .../Themes/Styles/Base/ListBoxBaseStyle.xaml | 54 ++-- .../Styles/Base/NumericUpDownBaseStyle.xaml | 2 +- .../Themes/Styles/Base/TextBoxBaseStyle.xaml | 4 +- .../Styles/Base/ToggleButtonBaseStyle.xaml | 8 +- HandyControl/Themes/Styles/Button.xaml | 8 +- HandyControl/Themes/Styles/CheckBox.xaml | 10 + HandyControl/Themes/Styles/DataGrid.xaml | 278 ++++++++++++++++++ HandyControl/Themes/Styles/NumericUpDown.xaml | 87 +++++- HandyControl/Themes/Styles/Style.xaml | 2 + HandyControl/Themes/Styles/TextBox.xaml | 4 +- HandyControl/Themes/Styles/Window.xaml | 5 - HandyControlDemo/App.xaml | 9 + HandyControlDemo/Data/Enum/DemoType.cs | 13 + HandyControlDemo/Data/MessageToken.cs | 14 + HandyControlDemo/Data/MessageToken.tt | 11 +- HandyControlDemo/Data/Model/DemoDataModel.cs | 20 ++ HandyControlDemo/HandyControlDemo.csproj | 85 ++++++ HandyControlDemo/MainWindow.xaml | 1 + HandyControlDemo/Properties/AssemblyInfo.cs | 4 +- .../Properties/Langs/Lang.Designer.cs | 117 ++++++++ .../Properties/Langs/Lang.en.resx | 39 +++ HandyControlDemo/Properties/Langs/Lang.resx | 39 +++ .../Resources/Img/BorderElement_16x.png | Bin 0 -> 218 bytes .../Resources/Img/ButtonClick_16x.png | Bin 0 -> 429 bytes .../Resources/Img/Calendar_16x.png | Bin 0 -> 165 bytes .../Resources/Img/Carousel_16x.png | Bin 0 -> 148 bytes .../Resources/Img/CheckBox_16x.png | Bin 0 -> 266 bytes .../Resources/Img/ColorPalette_16x.png | Bin 0 -> 624 bytes .../Resources/Img/ComboBox_16x.png | Bin 0 -> 244 bytes .../Resources/Img/ContextMenu_16x.png | Bin 0 -> 383 bytes .../Resources/Img/DataGrid_16x.png | Bin 0 -> 313 bytes .../Resources/Img/DatePicker_16x.png | Bin 0 -> 263 bytes .../Resources/Img/Expander_16x.png | Bin 0 -> 401 bytes HandyControlDemo/Resources/Img/Flow_16x.png | Bin 0 -> 207 bytes .../Resources/Img/ImageBrowser_16x.png | Bin 0 -> 561 bytes .../Resources/Img/ListBox_16x.png | Bin 0 -> 278 bytes .../Resources/Img/Loading_Blue_16x.png | Bin 0 -> 704 bytes .../Resources/Img/Message_16x.png | Bin 0 -> 179 bytes .../Resources/Img/NumericListBox_16x.png | Bin 0 -> 196 bytes .../Resources/Img/Paginator_16x.png | Bin 0 -> 174 bytes .../Resources/Img/PasswordBox_16x.png | Bin 0 -> 162 bytes HandyControlDemo/Resources/Img/Path_16x.png | Bin 0 -> 434 bytes .../Resources/Img/ProgressBar_16x.png | Bin 0 -> 199 bytes .../Resources/Img/ScrollBox_16x.png | Bin 0 -> 247 bytes .../Resources/Img/ShapeArcRing_16x.png | Bin 0 -> 417 bytes .../Resources/Img/SplitterControl_16x.png | Bin 0 -> 179 bytes .../Resources/Img/TabPage_16x.png | Bin 0 -> 212 bytes .../Resources/Img/TextBlock_16x.png | Bin 0 -> 143 bytes .../Resources/Img/TextBox_16x.png | Bin 0 -> 153 bytes .../Resources/Img/TimePicker_16x.png | Bin 0 -> 566 bytes .../Resources/Img/Time_color_16x.png | Bin 0 -> 448 bytes .../Resources/Img/Timeline_16x.png | Bin 0 -> 205 bytes HandyControlDemo/Resources/Img/Toggle_16x.png | Bin 0 -> 246 bytes .../Resources/Img/TreeView_16x.png | Bin 0 -> 143 bytes .../Resources/Img/WindowsForm_16x.png | Bin 0 -> 195 bytes .../Resources/Themes/Styles/ListBoxItem.xaml | 40 ++- .../Controls/NumericUpDownDemoCtl.xaml | 10 +- .../UserControl/Controls/WindowDemoCtl.xaml | 9 + .../Controls/WindowDemoCtl.xaml.cs | 11 + .../UserControl/Main/LeftMainContent.xaml | 191 ++++++++++-- .../UserControl/Main/NoUserContent.xaml | 2 +- .../UserControl/Styles/BorderDemoCtl.xaml | 41 +++ .../UserControl/Styles/BorderDemoCtl.xaml.cs | 11 + .../UserControl/Styles/ButtonDemoCtl.xaml | 6 +- .../UserControl/Styles/CheckBoxDemoCtl.xaml | 18 ++ .../Styles/CheckBoxDemoCtl.xaml.cs | 11 + .../UserControl/Styles/DataGridDemoCtl.xaml | 24 ++ .../Styles/DataGridDemoCtl.xaml.cs | 11 + .../UserControl/Styles/ListBoxDemoCtl.xaml | 15 + .../UserControl/Styles/ListBoxDemoCtl.xaml.cs | 11 + .../UserControl/Styles/MenuDemoCtl.xaml | 24 ++ .../UserControl/Styles/MenuDemoCtl.xaml.cs | 11 + .../Styles/ToggleButtonDemoCtl.xaml | 186 ++++++------ .../UserControl/Styles/TreeViewDemoCtl.xaml | 15 + .../Styles/TreeViewDemoCtl.xaml.cs | 11 + HandyControlDemo/ViewModel/MainViewModel.cs | 43 +++ README.md | 4 +- Resources/DataGrid.png | Bin 0 -> 12514 bytes 89 files changed, 1707 insertions(+), 216 deletions(-) create mode 100644 HandyControl/Controls/Attach/DataGridAttach.cs create mode 100644 HandyControl/Controls/Attach/EdgeElement.cs create mode 100644 HandyControl/HandyControl.csproj.user create mode 100644 HandyControl/Themes/Styles/Base/CheckBoxBaseStyle.xaml create mode 100644 HandyControl/Themes/Styles/CheckBox.xaml create mode 100644 HandyControl/Themes/Styles/DataGrid.xaml create mode 100644 HandyControlDemo/Data/Enum/DemoType.cs create mode 100644 HandyControlDemo/Data/Model/DemoDataModel.cs create mode 100644 HandyControlDemo/Resources/Img/BorderElement_16x.png create mode 100644 HandyControlDemo/Resources/Img/ButtonClick_16x.png create mode 100644 HandyControlDemo/Resources/Img/Calendar_16x.png create mode 100644 HandyControlDemo/Resources/Img/Carousel_16x.png create mode 100644 HandyControlDemo/Resources/Img/CheckBox_16x.png create mode 100644 HandyControlDemo/Resources/Img/ColorPalette_16x.png create mode 100644 HandyControlDemo/Resources/Img/ComboBox_16x.png create mode 100644 HandyControlDemo/Resources/Img/ContextMenu_16x.png create mode 100644 HandyControlDemo/Resources/Img/DataGrid_16x.png create mode 100644 HandyControlDemo/Resources/Img/DatePicker_16x.png create mode 100644 HandyControlDemo/Resources/Img/Expander_16x.png create mode 100644 HandyControlDemo/Resources/Img/Flow_16x.png create mode 100644 HandyControlDemo/Resources/Img/ImageBrowser_16x.png create mode 100644 HandyControlDemo/Resources/Img/ListBox_16x.png create mode 100644 HandyControlDemo/Resources/Img/Loading_Blue_16x.png create mode 100644 HandyControlDemo/Resources/Img/Message_16x.png create mode 100644 HandyControlDemo/Resources/Img/NumericListBox_16x.png create mode 100644 HandyControlDemo/Resources/Img/Paginator_16x.png create mode 100644 HandyControlDemo/Resources/Img/PasswordBox_16x.png create mode 100644 HandyControlDemo/Resources/Img/Path_16x.png create mode 100644 HandyControlDemo/Resources/Img/ProgressBar_16x.png create mode 100644 HandyControlDemo/Resources/Img/ScrollBox_16x.png create mode 100644 HandyControlDemo/Resources/Img/ShapeArcRing_16x.png create mode 100644 HandyControlDemo/Resources/Img/SplitterControl_16x.png create mode 100644 HandyControlDemo/Resources/Img/TabPage_16x.png create mode 100644 HandyControlDemo/Resources/Img/TextBlock_16x.png create mode 100644 HandyControlDemo/Resources/Img/TextBox_16x.png create mode 100644 HandyControlDemo/Resources/Img/TimePicker_16x.png create mode 100644 HandyControlDemo/Resources/Img/Time_color_16x.png create mode 100644 HandyControlDemo/Resources/Img/Timeline_16x.png create mode 100644 HandyControlDemo/Resources/Img/Toggle_16x.png create mode 100644 HandyControlDemo/Resources/Img/TreeView_16x.png create mode 100644 HandyControlDemo/Resources/Img/WindowsForm_16x.png create mode 100644 HandyControlDemo/UserControl/Controls/WindowDemoCtl.xaml create mode 100644 HandyControlDemo/UserControl/Controls/WindowDemoCtl.xaml.cs create mode 100644 HandyControlDemo/UserControl/Styles/BorderDemoCtl.xaml create mode 100644 HandyControlDemo/UserControl/Styles/BorderDemoCtl.xaml.cs create mode 100644 HandyControlDemo/UserControl/Styles/CheckBoxDemoCtl.xaml create mode 100644 HandyControlDemo/UserControl/Styles/CheckBoxDemoCtl.xaml.cs create mode 100644 HandyControlDemo/UserControl/Styles/DataGridDemoCtl.xaml create mode 100644 HandyControlDemo/UserControl/Styles/DataGridDemoCtl.xaml.cs create mode 100644 HandyControlDemo/UserControl/Styles/ListBoxDemoCtl.xaml create mode 100644 HandyControlDemo/UserControl/Styles/ListBoxDemoCtl.xaml.cs create mode 100644 HandyControlDemo/UserControl/Styles/MenuDemoCtl.xaml create mode 100644 HandyControlDemo/UserControl/Styles/MenuDemoCtl.xaml.cs create mode 100644 HandyControlDemo/UserControl/Styles/TreeViewDemoCtl.xaml create mode 100644 HandyControlDemo/UserControl/Styles/TreeViewDemoCtl.xaml.cs create mode 100644 Resources/DataGrid.png diff --git a/HandyControl/Controls/Attach/DataGridAttach.cs b/HandyControl/Controls/Attach/DataGridAttach.cs new file mode 100644 index 00000000..3385ac3d --- /dev/null +++ b/HandyControl/Controls/Attach/DataGridAttach.cs @@ -0,0 +1,211 @@ +using System.Linq; +using System.Windows; +using System.Windows.Controls; + +// ReSharper disable once CheckNamespace +namespace HandyControl.Controls +{ + public class DataGridAttach : DependencyObject + { + public static readonly DependencyProperty TextColumnStyleProperty = DependencyProperty.RegisterAttached( + "TextColumnStyle", typeof(Style), typeof(DataGridAttach), new PropertyMetadata(default(Style), OnTextColumnStyleChanged)); + + private static void OnTextColumnStyleChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + var grid = (DataGrid)d; + if (e.OldValue == null && e.NewValue != null) + { + UpdateTextColumnStyles(grid); + } + } + + public static void SetTextColumnStyle(DependencyObject element, Style value) => element.SetValue(TextColumnStyleProperty, value); + + public static Style GetTextColumnStyle(DependencyObject element) => (Style)element.GetValue(TextColumnStyleProperty); + + public static readonly DependencyProperty EditingTextColumnStyleProperty = DependencyProperty.RegisterAttached( + "EditingTextColumnStyle", typeof(Style), typeof(DataGridAttach), new PropertyMetadata(default(Style), OnTextColumnStyleChanged)); + + public static void SetEditingTextColumnStyle(DependencyObject element, Style value) => element.SetValue(EditingTextColumnStyleProperty, value); + + public static Style GetEditingTextColumnStyle(DependencyObject element) => (Style) element.GetValue(EditingTextColumnStyleProperty); + + private static void UpdateTextColumnStyles(DataGrid grid) + { + var textColumnStyle = GetTextColumnStyle(grid); + var editingTextColumnStyle = GetEditingTextColumnStyle(grid); + + if (textColumnStyle != null) + { + foreach (var column in grid.Columns.OfType()) + { + var elementStyle = new Style + { + BasedOn = column.ElementStyle, + TargetType = textColumnStyle.TargetType + }; + + foreach (var setter in textColumnStyle.Setters.OfType()) + { + elementStyle.Setters.Add(setter); + } + + column.ElementStyle = elementStyle; + } + } + + if (editingTextColumnStyle != null) + { + foreach (var column in grid.Columns.OfType()) + { + var editingElementStyle = new Style + { + BasedOn = column.EditingElementStyle, + TargetType = editingTextColumnStyle.TargetType + }; + + foreach (var setter in editingTextColumnStyle.Setters.OfType()) + { + editingElementStyle.Setters.Add(setter); + } + + column.EditingElementStyle = editingElementStyle; + } + } + } + + public static readonly DependencyProperty ComboBoxColumnStyleProperty = DependencyProperty.RegisterAttached( + "ComboBoxColumnStyle", typeof(Style), typeof(DataGridAttach), new PropertyMetadata(default(Style), OnComboBoxColumnStyleChanged)); + + private static void OnComboBoxColumnStyleChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + var grid = (DataGrid)d; + if (e.OldValue == null && e.NewValue != null) + { + UpdateComboBoxColumnStyles(grid); + } + } + + public static void SetComboBoxColumnStyle(DependencyObject element, Style value) => element.SetValue(ComboBoxColumnStyleProperty, value); + + public static Style GetComboBoxColumnStyle(DependencyObject element) => (Style) element.GetValue(ComboBoxColumnStyleProperty); + + public static readonly DependencyProperty EditingComboBoxColumnStyleProperty = DependencyProperty.RegisterAttached( + "EditingComboBoxColumnStyle", typeof(Style), typeof(DataGridAttach), new PropertyMetadata(default(Style), OnComboBoxColumnStyleChanged)); + + public static void SetEditingComboBoxColumnStyle(DependencyObject element, Style value) => element.SetValue(EditingComboBoxColumnStyleProperty, value); + + public static Style GetEditingComboBoxColumnStyle(DependencyObject element) => (Style) element.GetValue(EditingComboBoxColumnStyleProperty); + + private static void UpdateComboBoxColumnStyles(DataGrid grid) + { + var comboBoxColumnStyle = GetComboBoxColumnStyle(grid); + var editingComboBoxColumnStyle = GetEditingComboBoxColumnStyle(grid); + + if (comboBoxColumnStyle != null) + { + foreach (var column in grid.Columns.OfType()) + { + var elementStyle = new Style + { + BasedOn = column.ElementStyle, + TargetType = comboBoxColumnStyle.TargetType + }; + + foreach (var setter in comboBoxColumnStyle.Setters.OfType()) + { + elementStyle.Setters.Add(setter); + } + + column.ElementStyle = elementStyle; + } + } + + if (editingComboBoxColumnStyle != null) + { + foreach (var column in grid.Columns.OfType()) + { + var editingElementStyle = new Style + { + BasedOn = column.EditingElementStyle, + TargetType = editingComboBoxColumnStyle.TargetType + }; + + foreach (var setter in editingComboBoxColumnStyle.Setters.OfType()) + { + editingElementStyle.Setters.Add(setter); + } + + column.EditingElementStyle = editingElementStyle; + } + } + } + + public static readonly DependencyProperty CheckBoxColumnStyleProperty = DependencyProperty.RegisterAttached( + "CheckBoxColumnStyle", typeof(Style), typeof(DataGridAttach), new PropertyMetadata(default(Style), OnCheckBoxColumnStyleChanged)); + + private static void OnCheckBoxColumnStyleChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + var grid = (DataGrid)d; + if (e.OldValue == null && e.NewValue != null) + { + UpdateCheckBoxColumnStyles(grid); + } + } + + public static void SetCheckBoxColumnStyle(DependencyObject element, Style value) => element.SetValue(CheckBoxColumnStyleProperty, value); + + public static Style GetCheckBoxColumnStyle(DependencyObject element) => (Style)element.GetValue(CheckBoxColumnStyleProperty); + + public static readonly DependencyProperty EditingCheckBoxColumnStyleProperty = DependencyProperty.RegisterAttached( + "EditingCheckBoxColumnStyle", typeof(Style), typeof(DataGridAttach), new PropertyMetadata(default(Style), OnCheckBoxColumnStyleChanged)); + + public static void SetEditingCheckBoxColumnStyle(DependencyObject element, Style value) => element.SetValue(EditingCheckBoxColumnStyleProperty, value); + + public static Style GetEditingCheckBoxColumnStyle(DependencyObject element) => (Style) element.GetValue(EditingCheckBoxColumnStyleProperty); + + private static void UpdateCheckBoxColumnStyles(DataGrid grid) + { + var checkBoxColumnStyle = GetCheckBoxColumnStyle(grid); + var editingCheckBoxColumnStyle = GetEditingCheckBoxColumnStyle(grid); + + if (checkBoxColumnStyle != null) + { + foreach (var column in grid.Columns.OfType()) + { + var elementStyle = new Style + { + BasedOn = column.ElementStyle, + TargetType = checkBoxColumnStyle.TargetType + }; + + foreach (var setter in checkBoxColumnStyle.Setters.OfType()) + { + elementStyle.Setters.Add(setter); + } + + column.ElementStyle = elementStyle; + } + } + + if (editingCheckBoxColumnStyle != null) + { + foreach (var column in grid.Columns.OfType()) + { + var editingElementStyle = new Style + { + BasedOn = column.EditingElementStyle, + TargetType = editingCheckBoxColumnStyle.TargetType + }; + + foreach (var setter in editingCheckBoxColumnStyle.Setters.OfType()) + { + editingElementStyle.Setters.Add(setter); + } + + column.EditingElementStyle = editingElementStyle; + } + } + } + } +} \ No newline at end of file diff --git a/HandyControl/Controls/Attach/EdgeElement.cs b/HandyControl/Controls/Attach/EdgeElement.cs new file mode 100644 index 00000000..d43704b7 --- /dev/null +++ b/HandyControl/Controls/Attach/EdgeElement.cs @@ -0,0 +1,47 @@ +using System.Windows; + +// ReSharper disable once CheckNamespace +namespace HandyControl.Controls +{ + public class EdgeElement : DependencyObject + { + public static readonly DependencyProperty LeftContentProperty = DependencyProperty.RegisterAttached( + "LeftContent", typeof(object), typeof(EdgeElement), new PropertyMetadata(default(object), OnEdgeContentChanged)); + + public static void SetLeftContent(DependencyObject element, object value) => element.SetValue(LeftContentProperty, value); + + public static object GetLeftContent(DependencyObject element) => element.GetValue(LeftContentProperty); + + public static readonly DependencyProperty TopContentProperty = DependencyProperty.RegisterAttached( + "TopContent", typeof(object), typeof(EdgeElement), new PropertyMetadata(default(object), OnEdgeContentChanged)); + + public static void SetTopContent(DependencyObject element, object value) => element.SetValue(TopContentProperty, value); + + public static object GetTopContent(DependencyObject element) => element.GetValue(TopContentProperty); + + public static readonly DependencyProperty RightContentProperty = DependencyProperty.RegisterAttached( + "RightContent", typeof(object), typeof(EdgeElement), new PropertyMetadata(default(object), OnEdgeContentChanged)); + + public static void SetRightContent(DependencyObject element, object value) => element.SetValue(RightContentProperty, value); + + public static object GetRightContent(DependencyObject element) => element.GetValue(RightContentProperty); + + public static readonly DependencyProperty BottomContentProperty = DependencyProperty.RegisterAttached( + "BottomContent", typeof(object), typeof(EdgeElement), new PropertyMetadata(default(object), OnEdgeContentChanged)); + + public static void SetBottomContent(DependencyObject element, object value) => element.SetValue(BottomContentProperty, value); + + public static object GetBottomContent(DependencyObject element) => element.GetValue(BottomContentProperty); + + public static readonly DependencyProperty ShowEdgeContentProperty = DependencyProperty.RegisterAttached( + "ShowEdgeContent", typeof(bool), typeof(EdgeElement), new PropertyMetadata(default(bool))); + + public static void SetShowEdgeContent(DependencyObject element, bool value) => element.SetValue(ShowEdgeContentProperty, value); + + public static bool GetShowEdgeContent(DependencyObject element) => (bool) element.GetValue(ShowEdgeContentProperty); + + private static void OnEdgeContentChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) => + SetShowEdgeContent(d, !(GetLeftContent(d) == null && GetTopContent(d) == null && + GetRightContent(d) == null && GetBottomContent(d) == null)); + } +} \ No newline at end of file diff --git a/HandyControl/Controls/Attach/IconElement.cs b/HandyControl/Controls/Attach/IconElement.cs index 62f69c5d..003da5da 100644 --- a/HandyControl/Controls/Attach/IconElement.cs +++ b/HandyControl/Controls/Attach/IconElement.cs @@ -18,18 +18,5 @@ namespace HandyControl.Controls { return (Geometry)element.GetValue(GeometryProperty); } - - public static readonly DependencyProperty AngleProperty = DependencyProperty.RegisterAttached( - "Angle", typeof(double), typeof(IconElement), new PropertyMetadata(default(double))); - - public static void SetAngle(DependencyObject element, double value) - { - element.SetValue(AngleProperty, value); - } - - public static double GetAngle(DependencyObject element) - { - return (double)element.GetValue(AngleProperty); - } } } \ No newline at end of file diff --git a/HandyControl/Controls/Window/WindowBorderless.cs b/HandyControl/Controls/Window/WindowBorderless.cs index 98b456a1..be776be3 100644 --- a/HandyControl/Controls/Window/WindowBorderless.cs +++ b/HandyControl/Controls/Window/WindowBorderless.cs @@ -1,8 +1,10 @@ using System; using System.Windows; using System.Windows.Controls; +using System.Windows.Data; using System.Windows.Input; using System.Windows.Media; +using System.Windows.Shell; // ReSharper disable once CheckNamespace namespace HandyControl.Controls @@ -88,6 +90,15 @@ namespace HandyControl.Controls public WindowBorderless() { + var chrome = new WindowChrome + { + CornerRadius = new CornerRadius(), + GlassFrameThickness = new Thickness(1) + }; + BindingOperations.SetBinding(chrome, WindowChrome.CaptionHeightProperty, + new Binding(NoUserAreaHeightProperty.Name) {Source = this}); + WindowChrome.SetWindowChrome(this, chrome); + Loaded += delegate { _tempThickness = BorderThickness; diff --git a/HandyControl/HandyControl.csproj b/HandyControl/HandyControl.csproj index 647ca918..e7e40b08 100644 --- a/HandyControl/HandyControl.csproj +++ b/HandyControl/HandyControl.csproj @@ -36,6 +36,8 @@ + + @@ -180,6 +182,10 @@ Designer MSBuild:Compile + + Designer + MSBuild:Compile + Designer MSBuild:Compile @@ -272,6 +278,10 @@ Designer MSBuild:Compile + + Designer + MSBuild:Compile + Designer MSBuild:Compile @@ -292,6 +302,10 @@ Designer MSBuild:Compile + + Designer + MSBuild:Compile + Designer MSBuild:Compile diff --git a/HandyControl/HandyControl.csproj.user b/HandyControl/HandyControl.csproj.user new file mode 100644 index 00000000..6cbe5889 --- /dev/null +++ b/HandyControl/HandyControl.csproj.user @@ -0,0 +1,6 @@ + + + + ProjectFiles + + \ No newline at end of file diff --git a/HandyControl/Properties/AssemblyInfo.cs b/HandyControl/Properties/AssemblyInfo.cs index 8399a9fa..c125362e 100644 --- a/HandyControl/Properties/AssemblyInfo.cs +++ b/HandyControl/Properties/AssemblyInfo.cs @@ -10,5 +10,5 @@ using System.Runtime.InteropServices; [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] [assembly: ComVisible(false)] -[assembly: AssemblyVersion("1.3.3")] -[assembly: AssemblyFileVersion("1.3.3")] +[assembly: AssemblyVersion("1.3.4")] +[assembly: AssemblyFileVersion("1.3.4")] diff --git a/HandyControl/Themes/Basic/Geometries.xaml b/HandyControl/Themes/Basic/Geometries.xaml index 381ed8f8..31309607 100644 --- a/HandyControl/Themes/Basic/Geometries.xaml +++ b/HandyControl/Themes/Basic/Geometries.xaml @@ -31,5 +31,6 @@ M512.66048 64.64c-247.424 0-448 200.57728-448 448s200.576 448 448 448 448-200.57728 448-448c0-247.424-200.57728-448-448-448z m250.71232 334.86336L480.98176 681.89312c-15.49568 15.49696-40.61952 15.49696-56.11648 0l-162.9184-162.9184c-15.49568-15.49568-15.49568-40.61824 0-56.1152s40.61952-15.49568 56.11648 0l134.85952 134.85952L707.25504 343.3856c15.49568-15.49568 40.61952-15.49568 56.11648 0s15.49696 40.6208 0.00128 56.11776z M716.8 375.466667l34.133333 34.133333c17.066667 17.066667 42.666667 17.066667 59.733334 0 17.066667-17.066667 17.066667-42.666667 0-59.733333l-34.133334-34.133334 34.133334-34.133333c17.066667-17.066667 17.066667-42.666667 0-59.733333-17.066667-17.066667-42.666667-17.066667-59.733334 0l-34.133333 34.133333-34.133333-34.133333c-17.066667-17.066667-42.666667-17.066667-59.733334 0-17.066667 17.066667-17.066667 42.666667 0 59.733333l34.133334 34.133333-34.133334 34.133334c-17.066667 17.066667-17.066667 42.666667 0 59.733333 17.066667 17.066667 42.666667 17.066667 59.733334 0l34.133333-34.133333z m-426.666667 0l34.133334 34.133333c17.066667 17.066667 42.666667 17.066667 59.733333 0 17.066667-17.066667 17.066667-42.666667 0-59.733333l-34.133333-34.133334 34.133333-34.133333c17.066667-17.066667 17.066667-42.666667 0-59.733333-17.066667-17.066667-42.666667-17.066667-59.733333 0l-34.133334 34.133333-34.133333-34.133333c-17.066667-17.066667-42.666667-17.066667-59.733333 0-17.066667 17.066667-17.066667 42.666667 0 59.733333l34.133333 34.133333-34.133333 34.133334c-17.066667 17.066667-17.066667 42.666667 0 59.733333 17.066667 17.066667 42.666667 17.066667 59.733333 0l34.133333-34.133333zM0 85.333333c0-51.2 42.666667-85.333333 85.333333-85.333333h853.333334c51.2 0 85.333333 42.666667 85.333333 85.333333v853.333334c0 51.2-42.666667 85.333333-85.333333 85.333333H85.333333c-51.2 0-85.333333-42.666667-85.333333-85.333333V85.333333z m512 469.333334c-136.533333 0-230.4 68.266667-290.133333 196.266666-8.533333 17.066667 0 42.666667 17.066666 59.733334s42.666667 0 59.733334-17.066667c51.2-93.866667 110.933333-145.066667 221.866666-145.066667 102.4 0 170.666667 51.2 221.866667 145.066667 8.533333 17.066667 34.133333 25.6 59.733333 17.066667 17.066667-8.533333 25.6-34.133333 17.066667-59.733334-76.8-128-170.666667-196.266667-307.2-196.266666z M512 0 30.11843 240.941297l0 542.117406 481.88157 240.941297 481.88157-240.941297L993.88157 240.941297 512 0zM575.776472 768.799969 460.188012 768.799969 460.188012 656.222073l115.588459 0L575.776472 768.799969zM623.335603 509.329685c-52.375829 36.723353-59.600363 55.988096-59.600363 84.885211l0 19.866447L468.616977 614.081343l0-26.489278c0-45.754021 13.846342-80.67124 61.406497-116.791866 46.957428-36.723353 57.79423-62.0082 57.79423-84.282484 0-25.284848-21.67258-54.181962-55.386393-54.181962-42.743457 0-70.436142 26.489278-82.477374 85.486914l-105.956088-21.67258c24.683144-111.976192 82.477374-157.127486 205.289345-157.127486 98.12985 0 157.72919 63.212631 157.72919 131.842639C707.017407 423.240044 688.956071 461.76953 623.335603 509.329685z + M 721.005 638.949 C 758.74 638.949 789.333 669.56 789.333 707.312 C 789.333 745.047 758.74 775.657 721.005 775.657 C 683.253 775.657 652.66 745.047 652.66 707.312 C 652.66 669.56 683.253 638.949 721.005 638.949 Z M 512.017 638.949 C 549.77 638.949 580.38 669.56 580.38 707.312 C 580.38 745.047 549.77 775.657 512.017 775.657 C 474.265 775.657 443.672 745.047 443.672 707.312 C 443.672 669.56 474.265 638.949 512.017 638.949 Z M 303.029 638.949 C 340.781 638.949 371.392 669.56 371.392 707.312 C 371.392 745.047 340.781 775.657 303.029 775.657 C 265.277 775.657 234.667 745.047 234.667 707.312 C 234.667 669.56 265.277 638.949 303.029 638.949 Z M 721.005 443.655 C 758.74 443.655 789.333 474.265 789.333 512.017 C 789.333 549.769 758.74 580.363 721.005 580.363 C 683.253 580.363 652.66 549.769 652.66 512.017 C 652.66 474.265 683.253 443.655 721.005 443.655 Z M 512.017 443.655 C 549.77 443.655 580.38 474.265 580.38 512.017 C 580.38 549.769 549.77 580.363 512.017 580.363 C 474.265 580.363 443.672 549.769 443.672 512.017 C 443.672 474.265 474.265 443.655 512.017 443.655 Z M 303.029 443.655 C 340.781 443.655 371.392 474.265 371.392 512.017 C 371.392 549.769 340.781 580.363 303.029 580.363 C 265.277 580.363 234.667 549.769 234.667 512.017 C 234.667 474.265 265.277 443.655 303.029 443.655 Z M 721.005 248.343 C 758.74 248.343 789.333 278.953 789.333 316.688 C 789.333 354.44 758.74 385.051 721.005 385.051 C 683.253 385.051 652.66 354.44 652.66 316.688 C 652.66 278.953 683.253 248.343 721.005 248.343 Z M 512.017 248.343 C 549.77 248.343 580.38 278.953 580.38 316.688 C 580.38 354.44 549.77 385.051 512.017 385.051 C 474.265 385.051 443.672 354.44 443.672 316.688 C 443.672 278.953 474.265 248.343 512.017 248.343 Z M 303.029 248.343 C 340.781 248.343 371.392 278.953 371.392 316.688 C 371.392 354.44 340.781 385.051 303.029 385.051 C 265.277 385.051 234.667 354.44 234.667 316.688 C 234.667 278.953 265.277 248.343 303.029 248.343 Z \ No newline at end of file diff --git a/HandyControl/Themes/Styles/Base/ButtonBaseStyle.xaml b/HandyControl/Themes/Styles/Base/ButtonBaseStyle.xaml index e78fcba5..c48a2b22 100644 --- a/HandyControl/Themes/Styles/Base/ButtonBaseStyle.xaml +++ b/HandyControl/Themes/Styles/Base/ButtonBaseStyle.xaml @@ -9,7 +9,6 @@ + + \ No newline at end of file diff --git a/HandyControl/Themes/Styles/Base/ComboBoxBaseStyle.xaml b/HandyControl/Themes/Styles/Base/ComboBoxBaseStyle.xaml index ac84f132..c0605a88 100644 --- a/HandyControl/Themes/Styles/Base/ComboBoxBaseStyle.xaml +++ b/HandyControl/Themes/Styles/Base/ComboBoxBaseStyle.xaml @@ -276,7 +276,7 @@ - + diff --git a/HandyControl/Themes/Styles/Base/ListBoxBaseStyle.xaml b/HandyControl/Themes/Styles/Base/ListBoxBaseStyle.xaml index 3a473f8b..cd53bdae 100644 --- a/HandyControl/Themes/Styles/Base/ListBoxBaseStyle.xaml +++ b/HandyControl/Themes/Styles/Base/ListBoxBaseStyle.xaml @@ -19,29 +19,43 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/HandyControl/Themes/Styles/DataGrid.xaml b/HandyControl/Themes/Styles/DataGrid.xaml new file mode 100644 index 00000000..1e6ee26d --- /dev/null +++ b/HandyControl/Themes/Styles/DataGrid.xaml @@ -0,0 +1,278 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/HandyControl/Themes/Styles/NumericUpDown.xaml b/HandyControl/Themes/Styles/NumericUpDown.xaml index f9e12423..98090d0d 100644 --- a/HandyControl/Themes/Styles/NumericUpDown.xaml +++ b/HandyControl/Themes/Styles/NumericUpDown.xaml @@ -1,6 +1,8 @@  + xmlns:controls="clr-namespace:HandyControl.Controls" + xmlns:interactivity="clr-namespace:HandyControl.Interactivity" + xmlns:system="clr-namespace:System;assembly=mscorlib"> @@ -10,4 +12,87 @@ + \ No newline at end of file diff --git a/HandyControl/Themes/Styles/Style.xaml b/HandyControl/Themes/Styles/Style.xaml index 4d352ce8..2cef41d1 100644 --- a/HandyControl/Themes/Styles/Style.xaml +++ b/HandyControl/Themes/Styles/Style.xaml @@ -20,6 +20,7 @@ + @@ -31,6 +32,7 @@ + diff --git a/HandyControl/Themes/Styles/TextBox.xaml b/HandyControl/Themes/Styles/TextBox.xaml index 0a2c0c6f..9dd31eb8 100644 --- a/HandyControl/Themes/Styles/TextBox.xaml +++ b/HandyControl/Themes/Styles/TextBox.xaml @@ -25,7 +25,7 @@ - + @@ -52,7 +52,7 @@ - + diff --git a/HandyControl/Themes/Styles/Window.xaml b/HandyControl/Themes/Styles/Window.xaml index 1adda18b..5b186cf7 100644 --- a/HandyControl/Themes/Styles/Window.xaml +++ b/HandyControl/Themes/Styles/Window.xaml @@ -28,11 +28,6 @@ - - - - - diff --git a/HandyControlDemo/App.xaml b/HandyControlDemo/App.xaml index 8e37d27b..c46c95fa 100644 --- a/HandyControlDemo/App.xaml +++ b/HandyControlDemo/App.xaml @@ -4,6 +4,8 @@ xmlns:viewModel="clr-namespace:HandyControlDemo.ViewModel" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:d1P1="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:sys="clr-namespace:System;assembly=mscorlib" + xmlns:data="clr-namespace:HandyControlDemo.Data" d1P1:Ignorable="d" StartupUri="MainWindow.xaml"> @@ -16,6 +18,13 @@ + + + + + + + diff --git a/HandyControlDemo/Data/Enum/DemoType.cs b/HandyControlDemo/Data/Enum/DemoType.cs new file mode 100644 index 00000000..f6805aa1 --- /dev/null +++ b/HandyControlDemo/Data/Enum/DemoType.cs @@ -0,0 +1,13 @@ +// ReSharper disable once CheckNamespace +namespace HandyControlDemo.Data +{ + public enum DemoType + { + Type1 = 1, + Type2, + Type3, + Type4, + Type5, + Type6 + } +} \ No newline at end of file diff --git a/HandyControlDemo/Data/MessageToken.cs b/HandyControlDemo/Data/MessageToken.cs index 185d6790..21b03fb6 100644 --- a/HandyControlDemo/Data/MessageToken.cs +++ b/HandyControlDemo/Data/MessageToken.cs @@ -30,6 +30,8 @@ public static readonly string NumericUpDownDemoCtl = nameof(NumericUpDownDemoCtl); + public static readonly string WindowDemoCtl = nameof(WindowDemoCtl); + public static readonly string ButtonDemoCtl = nameof(ButtonDemoCtl); public static readonly string ToggleButtonDemoCtl = nameof(ToggleButtonDemoCtl); @@ -54,6 +56,18 @@ public static readonly string NaiveTabControlDemoCtl = nameof(NaiveTabControlDemoCtl); + public static readonly string DataGridDemoCtl = nameof(DataGridDemoCtl); + + public static readonly string CheckBoxDemoCtl = nameof(CheckBoxDemoCtl); + + public static readonly string ListBoxDemoCtl = nameof(ListBoxDemoCtl); + + public static readonly string MenuDemoCtl = nameof(MenuDemoCtl); + + public static readonly string TreeViewDemoCtl = nameof(TreeViewDemoCtl); + + public static readonly string BorderDemoCtl = nameof(BorderDemoCtl); + public static readonly string LoadShowContent = nameof(LoadShowContent); } } \ No newline at end of file diff --git a/HandyControlDemo/Data/MessageToken.tt b/HandyControlDemo/Data/MessageToken.tt index d7a2467e..646d0b1a 100644 --- a/HandyControlDemo/Data/MessageToken.tt +++ b/HandyControlDemo/Data/MessageToken.tt @@ -17,7 +17,8 @@ var controlList = new List "ClockDemoCtl", "TimePickerDemoCtl", "CirclePanelDemoCtl", - "NumericUpDownDemoCtl" + "NumericUpDownDemoCtl", + "WindowDemoCtl" }; var styleList = new List { @@ -32,7 +33,13 @@ var styleList = new List "TextBlockDemoCtl", "ComboBoxDemoCtl", "PasswordBoxDemoCtl", - "NaiveTabControlDemoCtl" + "NaiveTabControlDemoCtl", + "DataGridDemoCtl", + "CheckBoxDemoCtl", + "ListBoxDemoCtl", + "MenuDemoCtl", + "TreeViewDemoCtl", + "BorderDemoCtl" }; #> namespace HandyControlDemo.Data diff --git a/HandyControlDemo/Data/Model/DemoDataModel.cs b/HandyControlDemo/Data/Model/DemoDataModel.cs new file mode 100644 index 00000000..27cd2659 --- /dev/null +++ b/HandyControlDemo/Data/Model/DemoDataModel.cs @@ -0,0 +1,20 @@ +using System.Collections.Generic; + +// ReSharper disable once CheckNamespace +namespace HandyControlDemo.Data +{ + public class DemoDataModel + { + public int Index { get; set; } + + public string Name { get; set; } + + public bool IsSelected { get; set; } + + public string Remark { get; set; } + + public DemoType Type { get; set; } + + public List DataList { get; set; } + } +} \ No newline at end of file diff --git a/HandyControlDemo/HandyControlDemo.csproj b/HandyControlDemo/HandyControlDemo.csproj index 8095c7b9..43508689 100644 --- a/HandyControlDemo/HandyControlDemo.csproj +++ b/HandyControlDemo/HandyControlDemo.csproj @@ -62,11 +62,13 @@ MSBuild:Compile Designer + True True MessageToken.tt + True True @@ -115,18 +117,30 @@ TimePickerDemoCtl.xaml + + WindowDemoCtl.xaml + NoUserContent.xaml + + BorderDemoCtl.xaml + ButtonDemoCtl.xaml CalendarDemoCtl.xaml + + CheckBoxDemoCtl.xaml + ComboBoxDemoCtl.xaml + + DataGridDemoCtl.xaml + DatePickerDemoCtl.xaml @@ -145,6 +159,12 @@ TimeBarDemoCtl.xaml + + ListBoxDemoCtl.xaml + + + MenuDemoCtl.xaml + NaiveTabControlDemoCtl.xaml @@ -166,6 +186,9 @@ ToggleButtonDemoCtl.xaml + + TreeViewDemoCtl.xaml + @@ -263,10 +286,18 @@ Designer MSBuild:Compile + + Designer + MSBuild:Compile + Designer MSBuild:Compile + + Designer + MSBuild:Compile + Designer MSBuild:Compile @@ -275,10 +306,18 @@ Designer MSBuild:Compile + + Designer + MSBuild:Compile + Designer MSBuild:Compile + + Designer + MSBuild:Compile + Designer MSBuild:Compile @@ -303,6 +342,14 @@ Designer MSBuild:Compile + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + Designer MSBuild:Compile @@ -331,6 +378,10 @@ Designer MSBuild:Compile + + Designer + MSBuild:Compile + @@ -359,6 +410,39 @@ TextTemplatingFileGenerator MessageToken.cs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -374,6 +458,7 @@ PublicResXFileCodeGenerator Lang.Designer.cs + Designer diff --git a/HandyControlDemo/MainWindow.xaml b/HandyControlDemo/MainWindow.xaml index 521d4d43..08a2b836 100644 --- a/HandyControlDemo/MainWindow.xaml +++ b/HandyControlDemo/MainWindow.xaml @@ -13,6 +13,7 @@ Style="{StaticResource CustomWindowStyle}" WindowState="Maximized" Title="MainWindow" + ResizeMode="CanResizeWithGrip" Name="MyWindow" DataContext="{Binding Main,Source={StaticResource Locator}}" d:DesignHeight="800" diff --git a/HandyControlDemo/Properties/AssemblyInfo.cs b/HandyControlDemo/Properties/AssemblyInfo.cs index db61bf36..35c8ecf9 100644 --- a/HandyControlDemo/Properties/AssemblyInfo.cs +++ b/HandyControlDemo/Properties/AssemblyInfo.cs @@ -12,5 +12,5 @@ using System.Windows; [assembly: AssemblyCulture("")] [assembly: ComVisible(false)] [assembly: ThemeInfo(ResourceDictionaryLocation.None, ResourceDictionaryLocation.SourceAssembly)] -[assembly: AssemblyVersion("1.3.3")] -[assembly: AssemblyFileVersion("1.3.3")] +[assembly: AssemblyVersion("1.3.4")] +[assembly: AssemblyFileVersion("1.3.4")] diff --git a/HandyControlDemo/Properties/Langs/Lang.Designer.cs b/HandyControlDemo/Properties/Langs/Lang.Designer.cs index a106e2e9..0c5d39f9 100644 --- a/HandyControlDemo/Properties/Langs/Lang.Designer.cs +++ b/HandyControlDemo/Properties/Langs/Lang.Designer.cs @@ -78,6 +78,15 @@ namespace HandyControlDemo.Properties.Langs { } } + /// + /// 查找类似 边框 的本地化字符串。 + /// + public static string Border1 { + get { + return ResourceManager.GetString("Border1", resourceCulture); + } + } + /// /// 查找类似 按钮 的本地化字符串。 /// @@ -204,6 +213,15 @@ namespace HandyControlDemo.Properties.Langs { } } + /// + /// 查找类似 数据表格 的本地化字符串。 + /// + public static string DataGrid { + get { + return ResourceManager.GetString("DataGrid", resourceCulture); + } + } + /// /// 查找类似 日期选择器 的本地化字符串。 /// @@ -303,6 +321,15 @@ namespace HandyControlDemo.Properties.Langs { } } + /// + /// 查找类似 索引 的本地化字符串。 + /// + public static string Index { + get { + return ResourceManager.GetString("Index", resourceCulture); + } + } + /// /// 查找类似 信息 的本地化字符串。 /// @@ -312,6 +339,15 @@ namespace HandyControlDemo.Properties.Langs { } } + /// + /// 查找类似 列表框 的本地化字符串。 + /// + public static string ListBox { + get { + return ResourceManager.GetString("ListBox", resourceCulture); + } + } + /// /// 查找类似 加载条 的本地化字符串。 /// @@ -321,6 +357,24 @@ namespace HandyControlDemo.Properties.Langs { } } + /// + /// 查找类似 菜单 的本地化字符串。 + /// + public static string Menu { + get { + return ResourceManager.GetString("Menu", resourceCulture); + } + } + + /// + /// 查找类似 名称 的本地化字符串。 + /// + public static string Name { + get { + return ResourceManager.GetString("Name", resourceCulture); + } + } + /// /// 查找类似 下一步 的本地化字符串。 /// @@ -411,6 +465,42 @@ namespace HandyControlDemo.Properties.Langs { } } + /// + /// 查找类似 备注 的本地化字符串。 + /// + public static string Remark { + get { + return ResourceManager.GetString("Remark", resourceCulture); + } + } + + /// + /// 查找类似 在这里右击 的本地化字符串。 + /// + public static string RightClickHere { + get { + return ResourceManager.GetString("RightClickHere", resourceCulture); + } + } + + /// + /// 查找类似 滚动视图 的本地化字符串。 + /// + public static string ScrollViewer { + get { + return ResourceManager.GetString("ScrollViewer", resourceCulture); + } + } + + /// + /// 查找类似 选中 的本地化字符串。 + /// + public static string Selected { + get { + return ResourceManager.GetString("Selected", resourceCulture); + } + } + /// /// 查找类似 步骤条 的本地化字符串。 /// @@ -546,6 +636,24 @@ namespace HandyControlDemo.Properties.Langs { } } + /// + /// 查找类似 树视图 的本地化字符串。 + /// + public static string TreeView { + get { + return ResourceManager.GetString("TreeView", resourceCulture); + } + } + + /// + /// 查找类似 类型 的本地化字符串。 + /// + public static string Type { + get { + return ResourceManager.GetString("Type", resourceCulture); + } + } + /// /// 查找类似 上传文件 的本地化字符串。 /// @@ -563,5 +671,14 @@ namespace HandyControlDemo.Properties.Langs { return ResourceManager.GetString("Warning", resourceCulture); } } + + /// + /// 查找类似 窗口 的本地化字符串。 + /// + public static string Window { + get { + return ResourceManager.GetString("Window", resourceCulture); + } + } } } diff --git a/HandyControlDemo/Properties/Langs/Lang.en.resx b/HandyControlDemo/Properties/Langs/Lang.en.resx index 456eadb3..252a3c85 100644 --- a/HandyControlDemo/Properties/Langs/Lang.en.resx +++ b/HandyControlDemo/Properties/Langs/Lang.en.resx @@ -285,4 +285,43 @@ NumericUpDown + + DataGrid + + + Index + + + Name + + + Type + + + Remark + + + Selected + + + ListBox + + + TreeView + + + Border + + + ScrollViewer + + + Window + + + Menu + + + Right click here + \ No newline at end of file diff --git a/HandyControlDemo/Properties/Langs/Lang.resx b/HandyControlDemo/Properties/Langs/Lang.resx index 4956b5ff..b64755f2 100644 --- a/HandyControlDemo/Properties/Langs/Lang.resx +++ b/HandyControlDemo/Properties/Langs/Lang.resx @@ -265,4 +265,43 @@ 数值选择控件 + + 数据表格 + + + 索引 + + + 名称 + + + 类型 + + + 备注 + + + 选中 + + + 列表框 + + + 树视图 + + + 边框 + + + 滚动视图 + + + 窗口 + + + 菜单 + + + 在这里右击 + \ No newline at end of file diff --git a/HandyControlDemo/Resources/Img/BorderElement_16x.png b/HandyControlDemo/Resources/Img/BorderElement_16x.png new file mode 100644 index 0000000000000000000000000000000000000000..d1d7331ac155c508e94d891b06c449a75e659947 GIT binary patch literal 218 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9F5M?jcysy3fAP_W0- z#WAEJ?(OA`Tug=nEEjev`@VTMea+<+cbnqN3+CR+d8;40T~oBR!@@vw-PfzTr8$h9 zU2HxmKeuUEc+G1wCqvnDR^KyhjcJo>R`&Bx2~zMq#-6n8{HL!)%|$k{58h=QyWakB z`PZ#`1*QM;GkCVRWmUh|t2ti0UoYU@cOAO9J9O4Dqd2rCOVev!A;pqLLmxa2^6tIw?(&3E3WV?b8vqrg!&cL@ zDurxhp3P>J`FxHvsMqV2Uaz+)6be=0dEU3#bzR)wJwOP7Q{aj1r$-cvMfCgqtpvcy zsmuiTaPMNV0KE(#63y9M=FgA_5@#T#L@t*FM1qbK7&~KRGLn=37qDC|VcRx@j9*nA zzwRllRx1pLLwu?LK@j{3*fyI@{+hEP>-8F@Y2y9xhHkeDdT9c?;5d$|)oL+@TI^e= z(@|k>sNJxMU@diB-?Un-#44A|Ww30M$pocRDH62k{)yxX27`gx?RKisXsFR>#L3TT z-t8w~zuzCi^<_GpD$BAM@DcKYdYT?w=kxhX0JrUS8-`)L0?+}tv1th>ASrOYI@ZW9 Xd#BxfanMpkTPC zi(^Pd+}4TSTnq{vthTei@AuwX7%kx0^x(BN&&|bdN>y=6K~ohzPuDpUlbDwJ*ulMe zLMzkJ)QEanMprD(l zi(^Pd+}%lzTnq{VOx3gh*Y{ty5_NLzXjgK)(XIR@uQFKW^{Ft9hF?6BFNiJpd?kme rt$H&r!v}7KxTK0>e!t!tM|X_^vrP}rOKoMjBB;(-O7-`Pb(zg8=x{`md*z~f@~ z@|%Z#RyOsC_NsrBNHld>d~M792XprrJ^q={xIpO1{e<$n3AK@lQfD2E9{p)7+sj;N z9mJ7zmdKI;Vst0N2uP82|tP literal 0 HcmV?d00001 diff --git a/HandyControlDemo/Resources/Img/ColorPalette_16x.png b/HandyControlDemo/Resources/Img/ColorPalette_16x.png new file mode 100644 index 0000000000000000000000000000000000000000..7ca526217bf69e668c390215b645b252261c18c8 GIT binary patch literal 624 zcmV-$0+0QPP)Q!#6rQ4~Ff*g;Kk5Gj-n{Q;dqR|hc;PC5jv6`Tag zX3?!kiGy1W*n*9e5MzqqP;qSRVBOkEgW}Lu_^81Sg=+n(mWb)=I}a2q=D^{8eD9q5 z?z`_k16DAZOzr~+OYTVCh5~w$XOcOS$@Brl8skmLLbux$nM_6mgF)eTyGeele_W%6 z+PQCIZsrcvYV~0x62WLRLNpphu~;Pet^RS18fur5fLSY*itu{9qS2%Sy`3w(70zu&32j17aq@G=&Q@p>Rj zLp&ZwxmAEhQPNzD~AQ~34 zi*JHhZQ`aJ%_)F=a%nCi?RFbhs}+Br#4tI@fv`S3M61<8yBEWBC1k zSa)|pY(09c%!x!oO{C3cJLS8$E`gb&Ycv`$7!05VBY0DI#hsPe<#N3Tu&0`c^{4~_ z0p#;}RYf|ThQ(rG*)*T>rOMrPT!VRIpUD~dBRS>3uwiO+SMU$4DevG;3jyl@0000< KMNUMnLSTYh!4;YS literal 0 HcmV?d00001 diff --git a/HandyControlDemo/Resources/Img/ComboBox_16x.png b/HandyControlDemo/Resources/Img/ComboBox_16x.png new file mode 100644 index 0000000000000000000000000000000000000000..24eb2a8413fb8d7d33c47af7ca3979accabc2127 GIT binary patch literal 244 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9F5M?jcysy3fAP;i;2 zi(^Pd+};a@Tug=ntQY2|>IB_)>DD!ldrTp*X1%fdSM& z*q9g?x{_2UH6aX4HrkyqGPp9aus}kj)XObuqbcwum&;2o-+TAo9jdC@mSy=t_9+Iy zg5Y`Hv~AmWA~_r+h@uFN;|NXDyb;M!Ujb#kUc<61zOL(6A~{A!M)*M-$Ix~Cz%?QyhZ>3002ovPDHLkV1k(!qXYl| literal 0 HcmV?d00001 diff --git a/HandyControlDemo/Resources/Img/DataGrid_16x.png b/HandyControlDemo/Resources/Img/DataGrid_16x.png new file mode 100644 index 0000000000000000000000000000000000000000..49071e1323b45c58ff6f7c131e3cbc2ccac1f52e GIT binary patch literal 313 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9F5M?jcysy3fAQ1G>< zi(^Pd+|fyj=MNbOw5|76Olg|AGgBss^PuvC%@R!q1Vt?B*xraY97q)SyuhHDrQJd3 z&JnYX0ufBt+tf}kxVb&QNxiZ-`~KFwas3WW8eQ`y2&?8sOjG@`d?V9QjeU%j_xJWE zwip$sH*_yox1YyfzA!Sn^1|I8F>j=wC)D#YOuW{x=-A#|hRIc|Z`#;AuT8h+xg#yp z(<9ZwfAck`KVM@0`AecErKc9ZKB{0*UNXV)a$CfYwe~W{9|j&cw*Ngd*UgR+*FSd_ zL@8~`D(+vnN^4?l;`_CKl&-}Z6YQKiGe|$rWxXIcW-R!%IN`c;H@O1Ta JS?83{1OO{eeuw}7 literal 0 HcmV?d00001 diff --git a/HandyControlDemo/Resources/Img/DatePicker_16x.png b/HandyControlDemo/Resources/Img/DatePicker_16x.png new file mode 100644 index 0000000000000000000000000000000000000000..53418b70748f4717d490fe84238b708494c11549 GIT binary patch literal 263 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9F5M?jcysy3fAP;jTG zi(^Pd+|tR0Tug=nuJzMgJr;|_9du&RSNJC87;v+@LO@?h%Y&=>BU4jE1*_l|&K%)# z2T#K`l_!of)IR_77ff91%BRYk+;dh);O|-Hm3LOlamrkeWdAQA7iZyr`^7evj`UnZ z%YCuU635OSS~*eReyZLA75bP0 Hl+XkK6NXq% literal 0 HcmV?d00001 diff --git a/HandyControlDemo/Resources/Img/Expander_16x.png b/HandyControlDemo/Resources/Img/Expander_16x.png new file mode 100644 index 0000000000000000000000000000000000000000..da4dead88c1b6da60869dd89a53541334048f668 GIT binary patch literal 401 zcmV;C0dD?@P)yqbr?=roTZuY%{mn2DAv1yt#nOswrWoon>kftf2 z7aHEVEX#v!+ieK3IY@3OP~$#mpoN1ez6xN4bBI>4cZo?Z<8-@o%W4P-A~NY_%|00000NkvXXu0mjfd0DWU literal 0 HcmV?d00001 diff --git a/HandyControlDemo/Resources/Img/Flow_16x.png b/HandyControlDemo/Resources/Img/Flow_16x.png new file mode 100644 index 0000000000000000000000000000000000000000..08c388d63386251ccc4b6239853e7d7954c57604 GIT binary patch literal 207 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9F5M?jcysy3fAP_WU{ z#WAEJ?(Sqmz6J#z*P|0pE-qj_-XmNiZIE-~*{)IEvGTjDlNuzo&^$3HJ< zc6q%+zvi5UCqEQzKOq0`ZcA5f*c;QjPZR1s%+#~-;7sCZ3djXIhQZU-&t;ucLK6U) CgimDv literal 0 HcmV?d00001 diff --git a/HandyControlDemo/Resources/Img/ImageBrowser_16x.png b/HandyControlDemo/Resources/Img/ImageBrowser_16x.png new file mode 100644 index 0000000000000000000000000000000000000000..5a3088ff88db894b9058638a407743eac0fd203b GIT binary patch literal 561 zcmV-10?z%3P)xdu`P%oZbT^lhYEJpLRRiXaT9y*qc+YUrUx!}&V8Ko z&buQ)hhDEY17M#jNHt4!LG_tuCX=ZP9pnk(@3mTOHxh}=I-O2%Cm!QDo!^{lz_*Zi zsa~(+-P`y0`sJJG%xS&?Abp)duvjc2`7{Ni(a4;;;5;V;po26PUm6aFmoAq}+^ome zwio4c8ImMTPCyG9(&2^GYDK@_*NB;0EEcreZO~pur7_?Hw*Xw)Y&N`lof(;M7u@Ib zVgB|!r_&^q$Ha|%K0nuNHeoiKk$4gpu^;coV7J>vf{+q|9x{vR?TuV6w@@mT;BYvg zC<@dMDhh=HGMNn4?ye!5&7#}wLXR7Kv#P2K)oN9UqtPh*em|1Q6b=sdA1YzHhQr|oJp&|O1@H@m zbb3!Ljd5>%9l`qn7z_pk0zo`{^x!H1{l4F9!ea6L7t2e_7{RmYfqTP^kEeOjkB+jM z1Q5b&peQ>SVe!tQ#$Y16TOLfobc0Hzg8#)IK1RS^$eUCD00000NkvXXu0mjf3^w<7 literal 0 HcmV?d00001 diff --git a/HandyControlDemo/Resources/Img/ListBox_16x.png b/HandyControlDemo/Resources/Img/ListBox_16x.png new file mode 100644 index 0000000000000000000000000000000000000000..4bde75e3083d6baa4bbd7ba7ef6378a2f039007e GIT binary patch literal 278 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9F5M?jcysy3fAQ1FDO zi(^Pd+|rAR+=m=wSU+s9JgV5Cz}Cyw9Jw)D=G2s0j=wf_OuM;~&n`M^W01M^hM3L4 z4U?M>?y!ISA=ptDnm{r-UW|9h+;n literal 0 HcmV?d00001 diff --git a/HandyControlDemo/Resources/Img/Loading_Blue_16x.png b/HandyControlDemo/Resources/Img/Loading_Blue_16x.png new file mode 100644 index 0000000000000000000000000000000000000000..6f48361ff645f511fe5cf1aaa3a99ed3650ca2a4 GIT binary patch literal 704 zcmV;x0zdtUP)Q5=WQTy{72mX{q(j7_mXd?YL7E~W1e&1(~jF%5ni(Cb*k zG4bG-Kk7<|QWLx$xWG07x!nFG$XB&^)z33L4}Sz)Ihtw!&fz)!%%$GxTV10|7vRjJa~3wu&_u&G z30E@L*e%KOD3~4d3w`03^b#R8zy|U`Wh5rv{_Yd*B_zoMcY_9C*|@`j*W;nV+Q;LI zS6OGtXWr9g|ES^jQo@>p&2dqg@ck)IZ8`p=q?tG^^UFSa zkG*Wh&y6}tCKn~{bNp$1mdKI;Vst06l6v;s5{u literal 0 HcmV?d00001 diff --git a/HandyControlDemo/Resources/Img/NumericListBox_16x.png b/HandyControlDemo/Resources/Img/NumericListBox_16x.png new file mode 100644 index 0000000000000000000000000000000000000000..455b6a235d2fbe94b2ce29237614bb5ac506a67c GIT binary patch literal 196 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9F5he4R}c>anMpkSG& zi(^Pd+|kL_d<_Z$E|${n6QkZWuf4+_{Z$}q^V+m7%|8xI87h@0eLioR;M#d2uG#5A z)bs+eHK)Z|nVwrs5V=q%Jmc5~Wp(w6H;O!OPTXwLzRywAY4>P=gJVE3m80I{an^LB{Ts52Ruq$ literal 0 HcmV?d00001 diff --git a/HandyControlDemo/Resources/Img/Paginator_16x.png b/HandyControlDemo/Resources/Img/Paginator_16x.png new file mode 100644 index 0000000000000000000000000000000000000000..88a22536060c8845490d3c2772466ae2c16bcc24 GIT binary patch literal 174 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9F5he4R}c>anMpkRWh zi(^Pd+|`SYTnz?1E*E7^8b2x6nJ413t*g6nq5wz9La~2~TK9-)-H)1CX;$fyvsf`y zcc$cmNf!hdbq{?IzVVl#!B&gooK*vJ!!d@uc&3KEpPBMl?)WzT>eW8^|2pfv2~WO$ TZ(O<#XcvR0tDnm{r-UW|m~TDj literal 0 HcmV?d00001 diff --git a/HandyControlDemo/Resources/Img/PasswordBox_16x.png b/HandyControlDemo/Resources/Img/PasswordBox_16x.png new file mode 100644 index 0000000000000000000000000000000000000000..8f1bc5edb35c2b6caa17afc06e2d5b095c2da7ef GIT binary patch literal 162 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`nVv3=Ar*0ZCvW6xFyL{yeChn@ zMRm(}-PvBcHiX0LV!wPTXMfR-|N My85}Sb4q9e020YR8~^|S literal 0 HcmV?d00001 diff --git a/HandyControlDemo/Resources/Img/Path_16x.png b/HandyControlDemo/Resources/Img/Path_16x.png new file mode 100644 index 0000000000000000000000000000000000000000..bf46dd2fb63c3c40ea155ddf1036bb13d5efce83 GIT binary patch literal 434 zcmV;j0ZsmiP)TRM{>;@Lr z+vmuw>P`LoC1-f{!G^LUQ3X&L4u@(onFMJzn{Yav zH)8UDEzWI;E>>JFmx)j)1d_SS;A=EOJRV0noz}$sQcPn1RSk+J?RMJ?1OjHE@MKE7 zk^Z8a;c(dO_xp?u7W+xO5b4wD)bx72YZ=BTlkDR6wRxk_U_242G?#o-PcMAXGPw4Mp__#x{`RLt(_drK5c)I$ztaD0e0s#JbNTL7$ literal 0 HcmV?d00001 diff --git a/HandyControlDemo/Resources/Img/ScrollBox_16x.png b/HandyControlDemo/Resources/Img/ScrollBox_16x.png new file mode 100644 index 0000000000000000000000000000000000000000..0ba076324e3e1a15a3ae6a6333ecf30133362eec GIT binary patch literal 247 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9F5M?jcysy3fAP;jNE zi(^Pd+|r2~`3@yy;rE s_qMO9zP?qs@6pI>v?9dN&F3NS7hz+u6OF1TfR1MHboFyt=akR{0B#XsEdT%j literal 0 HcmV?d00001 diff --git a/HandyControlDemo/Resources/Img/ShapeArcRing_16x.png b/HandyControlDemo/Resources/Img/ShapeArcRing_16x.png new file mode 100644 index 0000000000000000000000000000000000000000..64f52301f3911f17a8a8e80394ca5276e237d8ef GIT binary patch literal 417 zcmV;S0bc%zP)HE8z$`Dhk_%V{{Uw)N{{Q!mcey`j=up@79RL@A)oE=2 zq`Iy@LqSuF<7O3QSw4kfXbB;pF4owihFVCN0J2adNpi7VE-{2{+wgt=0N}Dovp*(S z#Bto3r_)=!zP#bDe$r>NpNamc8?-a0>RQA<~m-oNdD}wz9x?M)r}ZQMqT0z1B<*z2{PM z<9S{IfYZn%T<9UqjrKrK`wE97OF08Rf4YksPfB()ut|zBCVfgO400000 LNkvXXu0mjfTgAD~ literal 0 HcmV?d00001 diff --git a/HandyControlDemo/Resources/Img/SplitterControl_16x.png b/HandyControlDemo/Resources/Img/SplitterControl_16x.png new file mode 100644 index 0000000000000000000000000000000000000000..a059b084d82c52ea11cf25e5e54be1d504c4bb06 GIT binary patch literal 179 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9F5he4R}c>anMpkS(} zi(^Pd+||h&xfl#NoPX!m&DkAa5Wn)ZEZ-qX4{M990x^@=H@;0$SGu=d^NoK9*IanMprE6t zi(^Pd+}q2BTnvgltbymvzVGk8^(XA0pKDXv_De~t4*U*nTJmTm;{i|G2}$=dIU`p8 nX9_-0v74)+LH5H#gTe~DWM4feoHaP literal 0 HcmV?d00001 diff --git a/HandyControlDemo/Resources/Img/TextBox_16x.png b/HandyControlDemo/Resources/Img/TextBox_16x.png new file mode 100644 index 0000000000000000000000000000000000000000..503a808bd8b62407378fcd5128ea7c5b1c0b09b3 GIT binary patch literal 153 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9F5he4R}c>anMprE&> zi(^Pd+}TNnTnq{vuC}wk@AuyNXX`c@E?r*FijF3J)|Z|PFXEOp%*>Bu-MS_C6U(LP xQKBb$y>fFmNLz?ySiWYN?a%r#{F~E7iNuu?URr$QF##IO;OXk;vd$@?2>^hVF;oBm literal 0 HcmV?d00001 diff --git a/HandyControlDemo/Resources/Img/TimePicker_16x.png b/HandyControlDemo/Resources/Img/TimePicker_16x.png new file mode 100644 index 0000000000000000000000000000000000000000..244c6fdd5fff71f2a37336ec7ac7c40c89347ca8 GIT binary patch literal 566 zcmV-60?GY}P)%pxf<&u&Wc;nNFwhpZ8-ErYTbp z2m~;hOxV4s6A%P!f{$TZrlf$1|I!J335Ub*JWmC<7fi8TK&9BS9uwLI=mVr z;z_U96S-VYB$G*zNF>C3J{R$LT(MfMiqq4Dpj>&+{~G0Mf4XgQPCA_iLBVkxxURdl zEbE4Hq)$ literal 0 HcmV?d00001 diff --git a/HandyControlDemo/Resources/Img/Time_color_16x.png b/HandyControlDemo/Resources/Img/Time_color_16x.png new file mode 100644 index 0000000000000000000000000000000000000000..42f08e1c426eca56bd6034d922f170e342c95bdf GIT binary patch literal 448 zcmV;x0YCnUP)iIcH11G9HijB;_Tg zBn3sJzND(8lGp3~6w$J{J*}5+w>xnhXJT2_B%MxEtiOBAU|{E-F_-y5tyat0wk_9n zW!p!3ekxI{>4_N(?97ozL@G=Nv2wYri}Oo`!(lDP=kqBViOM`k>F)lPR?IZbf+Wk} z%){X@TPzlJdUEzdj=Z^A3^N#599)i&uT&~ZBoY8x7Z_L^TsBBGn@uH?``R?HIJj&O z91I2u1w-02usFD$72MK)Xdmt@&Do$I2n2R}{T_c?WR*Z*r;czrLNy+bt6qQCrh&!5 zWrI>ClToA5P^Z&bE5pFz;2PX*zu*7LE#r~^tde11ac~V0>DV;Qk6bRN>zgY*JUVK% qTN;f<6l;3S1OtonFOTWZ&-n}K<>w|(srsw{0000HnF&oBy>?_-Roc*{JN&4-S1CXZ2wocv?FYWD4d7Of}=M!&@o|E2lg+_su_^N~Rt&?yX_u6{1-oD!MFO_w&&6`LubXJM^vaf|$%0NdMEeZA9OoYYoB8Vb>681KKU#UM@QJuSo#oUO3t73g zWJA5}tUEK9W>p+`X~5?5*(PzJOMXClb^fwanMprE6t zi(^Pd+}nwUTnq*r%(b)s*PmZo_IiS&jz=udovM~24FPXd9d`U?)tJZ?vWns2ZHJ93 n&)5VBF3JC59$?qALs@Q?=aYMX=Xm4-4P)?h^>bP0l+XkK`3f&x literal 0 HcmV?d00001 diff --git a/HandyControlDemo/Resources/Img/WindowsForm_16x.png b/HandyControlDemo/Resources/Img/WindowsForm_16x.png new file mode 100644 index 0000000000000000000000000000000000000000..764adcb2915280dbcfa7f5f9f65184d51e50a5ba GIT binary patch literal 195 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9F5M?jcysy3fAP_Wd~ z#WAEJZtLWYybT6CEV55hGiIppZs2U*z + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:controls="clr-namespace:HandyControl.Controls;assembly=HandyControl"> @@ -15,29 +16,26 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/HandyControlDemo/UserControl/Controls/NumericUpDownDemoCtl.xaml b/HandyControlDemo/UserControl/Controls/NumericUpDownDemoCtl.xaml index 1e48e96e..a0a6ade4 100644 --- a/HandyControlDemo/UserControl/Controls/NumericUpDownDemoCtl.xaml +++ b/HandyControlDemo/UserControl/Controls/NumericUpDownDemoCtl.xaml @@ -2,10 +2,18 @@ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:controls="clr-namespace:HandyControl.Controls;assembly=HandyControl" + xmlns:langs="clr-namespace:HandyControlDemo.Properties.Langs" Background="White"> - + + + + + + + + diff --git a/HandyControlDemo/UserControl/Controls/WindowDemoCtl.xaml b/HandyControlDemo/UserControl/Controls/WindowDemoCtl.xaml new file mode 100644 index 00000000..184b6140 --- /dev/null +++ b/HandyControlDemo/UserControl/Controls/WindowDemoCtl.xaml @@ -0,0 +1,9 @@ + + + + + diff --git a/HandyControlDemo/UserControl/Controls/WindowDemoCtl.xaml.cs b/HandyControlDemo/UserControl/Controls/WindowDemoCtl.xaml.cs new file mode 100644 index 00000000..14c94f45 --- /dev/null +++ b/HandyControlDemo/UserControl/Controls/WindowDemoCtl.xaml.cs @@ -0,0 +1,11 @@ +// ReSharper disable once CheckNamespace +namespace HandyControlDemo.UserControl +{ + public partial class WindowDemoCtl + { + public WindowDemoCtl() + { + InitializeComponent(); + } + } +} diff --git a/HandyControlDemo/UserControl/Main/LeftMainContent.xaml b/HandyControlDemo/UserControl/Main/LeftMainContent.xaml index cc126180..85c0a650 100644 --- a/HandyControlDemo/UserControl/Main/LeftMainContent.xaml +++ b/HandyControlDemo/UserControl/Main/LeftMainContent.xaml @@ -15,36 +15,175 @@ - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/HandyControlDemo/UserControl/Main/NoUserContent.xaml b/HandyControlDemo/UserControl/Main/NoUserContent.xaml index 4523aeea..bc77a5db 100644 --- a/HandyControlDemo/UserControl/Main/NoUserContent.xaml +++ b/HandyControlDemo/UserControl/Main/NoUserContent.xaml @@ -3,7 +3,7 @@ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:interactivity="clr-namespace:HandyControl.Interactivity;assembly=HandyControl" Orientation="Horizontal"> -