diff --git a/.gitignore b/.gitignore
index ad4d0fec..d51beecc 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,20 +1,5 @@
-DockBoxResearch/bin
-DockBoxResearch/obj
-src/.vs
-src/Core_30/HandyControl_Core_30/bin
-src/Core_30/HandyControl_Core_30/obj
-src/Core_30/HandyControlDemo_Core_30/bin
-src/Core_30/HandyControlDemo_Core_30/obj
-src/Net_35/HandyControl_Net_35/bin
-src/Net_35/HandyControl_Net_35/obj
-src/Net_35/HandyControlDemo_Net_35/bin
-src/Net_35/HandyControlDemo_Net_35/obj
-src/Net_40/HandyControl_Net_40/bin
-src/Net_40/HandyControl_Net_40/obj
-src/Net_40/HandyControlDemo_Net_40/bin
-src/Net_40/HandyControlDemo_Net_40/obj
-src/Net_GE45/HandyControl_Net_GE45/bin
-src/Net_GE45/HandyControl_Net_GE45/obj
-src/Net_GE45/HandyControlDemo_Net_GE45/bin
-src/Net_GE45/HandyControlDemo_Net_GE45/obj
-*.user
\ No newline at end of file
+.vs
+*.user
+*.xml
+[Bb]in/
+[Oo]bj/
\ No newline at end of file
diff --git a/Installers/VS2019/HandyControl_VS2019.sln b/Installers/VS2019/HandyControl_VS2019.sln
new file mode 100644
index 00000000..6e2908e9
--- /dev/null
+++ b/Installers/VS2019/HandyControl_VS2019.sln
@@ -0,0 +1,25 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.28803.352
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HandyControl_VS2019", "HandyControl_VS2019\HandyControl_VS2019.csproj", "{3F0F7B9E-C150-4FAA-9274-4F6F0A96B8CA}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {3F0F7B9E-C150-4FAA-9274-4F6F0A96B8CA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {3F0F7B9E-C150-4FAA-9274-4F6F0A96B8CA}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {3F0F7B9E-C150-4FAA-9274-4F6F0A96B8CA}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {3F0F7B9E-C150-4FAA-9274-4F6F0A96B8CA}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {A7F567D2-5FA3-4E17-A8A8-CDAFC217BFF5}
+ EndGlobalSection
+EndGlobal
diff --git a/Installers/VS2019/HandyControl_VS2019/HandyControl_VS2019.csproj b/Installers/VS2019/HandyControl_VS2019/HandyControl_VS2019.csproj
new file mode 100644
index 00000000..621606c8
--- /dev/null
+++ b/Installers/VS2019/HandyControl_VS2019/HandyControl_VS2019.csproj
@@ -0,0 +1,95 @@
+
+
+
+ 16.0
+ $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)
+
+
+
+ Debug
+ AnyCPU
+ 2.0
+ {82b43b9b-a64c-4715-b499-d71e9ca2bd60};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ {3F0F7B9E-C150-4FAA-9274-4F6F0A96B8CA}
+ Library
+ Properties
+ HandyControl_VS2019
+ HandyControl_VS2019
+ v4.7.2
+ true
+ true
+ true
+ false
+ false
+ true
+ true
+ Program
+ $(DevEnvDir)devenv.exe
+ /rootsuffix Exp
+
+
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+
+
+
+
+ Always
+ true
+
+
+ Always
+ true
+
+
+ Designer
+
+
+
+
+
+
+
+
+
+
+
+ true
+ Always
+
+
+ true
+ Always
+
+
+ true
+ Always
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Installers/VS2019/HandyControl_VS2019/HandyControl_VS2019Package.cs b/Installers/VS2019/HandyControl_VS2019/HandyControl_VS2019Package.cs
new file mode 100644
index 00000000..10e0ebb6
--- /dev/null
+++ b/Installers/VS2019/HandyControl_VS2019/HandyControl_VS2019Package.cs
@@ -0,0 +1,53 @@
+using System;
+using System.Runtime.InteropServices;
+using System.Threading;
+using Microsoft.VisualStudio.Shell;
+using Task = System.Threading.Tasks.Task;
+
+namespace HandyControl_VS2019
+{
+ ///
+ /// This is the class that implements the package exposed by this assembly.
+ ///
+ ///
+ ///
+ /// The minimum requirement for a class to be considered a valid package for Visual Studio
+ /// is to implement the IVsPackage interface and register itself with the shell.
+ /// This package uses the helper classes defined inside the Managed Package Framework (MPF)
+ /// to do it: it derives from the Package class that provides the implementation of the
+ /// IVsPackage interface and uses the registration attributes defined in the framework to
+ /// register itself and its components with the shell. These attributes tell the pkgdef creation
+ /// utility what data to put into .pkgdef file.
+ ///
+ ///
+ /// To get loaded into VS, the package must be referred by <Asset Type="Microsoft.VisualStudio.VsPackage" ...> in .vsixmanifest file.
+ ///
+ ///
+ [PackageRegistration(UseManagedResourcesOnly = true, AllowsBackgroundLoading = true)]
+ [Guid(PackageGuidString)]
+ public sealed class HandyControl_VS2019Package : AsyncPackage
+ {
+ ///
+ /// HandyControl_VS2019Package GUID string.
+ ///
+ public const string PackageGuidString = "157ef242-83b5-47d0-8f2f-e21dc8308151";
+
+ #region Package Members
+
+ ///
+ /// Initialization of the package; this method is called right after the package is sited, so this is the place
+ /// where you can put all the initialization code that rely on services provided by VisualStudio.
+ ///
+ /// A cancellation token to monitor for initialization cancellation, which can occur when VS is shutting down.
+ /// A provider for progress updates.
+ /// A task representing the async work of package initialization, or an already completed task if there is none. Do not return null from this method.
+ protected override async Task InitializeAsync(CancellationToken cancellationToken, IProgress progress)
+ {
+ // When initialized asynchronously, the current thread may be a background thread at this point.
+ // Do any initialization that requires the UI thread after switching to the UI thread.
+ await this.JoinableTaskFactory.SwitchToMainThreadAsync(cancellationToken);
+ }
+
+ #endregion
+ }
+}
diff --git a/Installers/VS2019/HandyControl_VS2019/License.txt b/Installers/VS2019/HandyControl_VS2019/License.txt
new file mode 100644
index 00000000..cfef606b
--- /dev/null
+++ b/Installers/VS2019/HandyControl_VS2019/License.txt
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2018-2019 HandyOrg
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
\ No newline at end of file
diff --git a/Installers/VS2019/HandyControl_VS2019/Packages/handycontrol.1.5.5.nupkg b/Installers/VS2019/HandyControl_VS2019/Packages/handycontrol.1.5.5.nupkg
new file mode 100644
index 00000000..9f36d145
Binary files /dev/null and b/Installers/VS2019/HandyControl_VS2019/Packages/handycontrol.1.5.5.nupkg differ
diff --git a/Installers/VS2019/HandyControl_VS2019/ProjectTemplates/WpfApp.zip b/Installers/VS2019/HandyControl_VS2019/ProjectTemplates/WpfApp.zip
new file mode 100644
index 00000000..ee36df8a
Binary files /dev/null and b/Installers/VS2019/HandyControl_VS2019/ProjectTemplates/WpfApp.zip differ
diff --git a/Installers/VS2019/HandyControl_VS2019/Properties/AssemblyInfo.cs b/Installers/VS2019/HandyControl_VS2019/Properties/AssemblyInfo.cs
new file mode 100644
index 00000000..d4aae7d0
--- /dev/null
+++ b/Installers/VS2019/HandyControl_VS2019/Properties/AssemblyInfo.cs
@@ -0,0 +1,14 @@
+using System.Reflection;
+using System.Runtime.InteropServices;
+
+[assembly: AssemblyTitle("HandyControl_VS2019")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("HandyControl_VS2019")]
+[assembly: AssemblyCopyright("")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+[assembly: ComVisible(false)]
+[assembly: AssemblyVersion("1.5.5")]
+[assembly: AssemblyFileVersion("1.5.5")]
\ No newline at end of file
diff --git a/Installers/VS2019/HandyControl_VS2019/icon_100_100.png b/Installers/VS2019/HandyControl_VS2019/icon_100_100.png
new file mode 100644
index 00000000..df0bb782
Binary files /dev/null and b/Installers/VS2019/HandyControl_VS2019/icon_100_100.png differ
diff --git a/Installers/VS2019/HandyControl_VS2019/icon_300_300.png b/Installers/VS2019/HandyControl_VS2019/icon_300_300.png
new file mode 100644
index 00000000..cb318d98
Binary files /dev/null and b/Installers/VS2019/HandyControl_VS2019/icon_300_300.png differ
diff --git a/Installers/VS2019/HandyControl_VS2019/source.extension.vsixmanifest b/Installers/VS2019/HandyControl_VS2019/source.extension.vsixmanifest
new file mode 100644
index 00000000..4701c027
--- /dev/null
+++ b/Installers/VS2019/HandyControl_VS2019/source.extension.vsixmanifest
@@ -0,0 +1,30 @@
+
+
+
+
+ HandyControl for VS2019
+ This VSIX Project will help people initialize a HandyControl project.
+ https://handyorg.github.io/handycontrol
+ License.txt
+ https://handyorg.github.io/handycontrol/quick_start
+ https://github.com/HandyOrg/HandyControl/releases
+ icon_100_100.png
+ icon_300_300.png
+ WPF C# Control
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/LICENSE b/LICENSE
index 1ba53fed..f9f0dead 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,6 +1,6 @@
MIT License
-Copyright (c) 2018 HandyOrg
+Copyright (c) 2018-2019 HandyOrg
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/README.md b/README.md
index 18acdfdb..687eaa26 100644
--- a/README.md
+++ b/README.md
@@ -44,7 +44,16 @@ Step 2:Add code in App.xaml as follows:
```
-Step 3:enjoy coding
+
+Step 3: Add NameSpace:
+`xmlns:hc="https://handyorg.github.io/handycontrol"`
+
+Step 4:enjoy coding
+
+## VSIX packages for Visual Studio
+
+| [VS2019](https://marketplace.visualstudio.com/items?itemName=HandyOrg.handycontrolforvs2019) |
+| ------------- |
## Overview
diff --git a/doc/source/handycontrol/attach/images/Attach.png b/doc/source/handycontrol/attach/images/Attach.png
new file mode 100644
index 00000000..efda668e
Binary files /dev/null and b/doc/source/handycontrol/attach/images/Attach.png differ
diff --git a/doc/source/handycontrol/attach/index.md b/doc/source/handycontrol/attach/index.md
index ca12ad62..c8aa438a 100644
--- a/doc/source/handycontrol/attach/index.md
+++ b/doc/source/handycontrol/attach/index.md
@@ -1,5 +1,9 @@
---
-title: 建设中
+title: 附加属性
---
-建设中
\ No newline at end of file
+附加属性源码在Controls / Attach文件夹中:
+
+
+
+以`Element`结尾的类,可以为所有的控件设置一些共有的属性,以`Attach`结尾的类,只能为一种控件设置相关的属性。
\ No newline at end of file
diff --git a/doc/source/handycontrol/basic_xaml/behaviors/index.md b/doc/source/handycontrol/basic_xaml/behaviors/index.md
index d994b47f..8975830f 100644
--- a/doc/source/handycontrol/basic_xaml/behaviors/index.md
+++ b/doc/source/handycontrol/basic_xaml/behaviors/index.md
@@ -14,5 +14,5 @@ title: 行为
| BehaviorY400 | 流体移动行为,y轴运动,400毫秒结束动画 |
{% note info no-icon %}
-用例:`controls:PanelElement.FluidMoveBehavior="{StaticResource BehaviorXY200}"`
+用例:`hc:PanelElement.FluidMoveBehavior="{StaticResource BehaviorXY200}"`
{% endnote %}
\ No newline at end of file
diff --git a/doc/source/handycontrol/index.md b/doc/source/handycontrol/index.md
index cf901cf9..407206a8 100644
--- a/doc/source/handycontrol/index.md
+++ b/doc/source/handycontrol/index.md
@@ -4,12 +4,15 @@ title: 欢迎使用HandyControl
HandyControl是一套WPF控件库,它几乎重写了所有原生样式,同时包含50多款额外的控件(正逐步增加)。
-# 使用要求
+# 要求
- - .Net >= 4.0
- - OS >= win7
- - IDE >= vs2019
- - C# >= 7.3
+- 使用要求
+.Net >= 4.0
+OS >= win7
+
+- 编译要求
+IDE >= vs2019
+C# >= 7.3
# 下载
diff --git a/doc/source/handycontrol/langs/images/Langs.png b/doc/source/handycontrol/langs/images/Langs.png
new file mode 100644
index 00000000..cfec814b
Binary files /dev/null and b/doc/source/handycontrol/langs/images/Langs.png differ
diff --git a/doc/source/handycontrol/langs/index.md b/doc/source/handycontrol/langs/index.md
index ca12ad62..567e3917 100644
--- a/doc/source/handycontrol/langs/index.md
+++ b/doc/source/handycontrol/langs/index.md
@@ -1,5 +1,30 @@
---
-title: 建设中
+title: 国际化
---
-建设中
\ No newline at end of file
+# 使用方式
+
+可通过`ConfigHelper.Instance.SetLang(string lang)`指定需要使用的语言包,默认使用zh-cn。
+
+控件库自带的语言包一般为控件库内部使用,但用户也可以通过以下两种方式使用:
+
+- xaml
+第一步,引入命名空间:`xmlns:hc="https://handyorg.github.io/handycontrol"`
+第二步,使用语言包:``
+
+- C#
+`HandyControl.Properties.Langs.Lang.Cancel`
+
+{% note warning %}
+控件库不支持动态语言包切换,未来也不会有支持。
+{% endnote %}
+
+# 扩展
+
+控件库自带zh-cn和en两份语言包,默认为zh-cn:
+
+
+
+如果需要可自行扩展,这里推荐使用开源插件:[ResXManager](https://marketplace.visualstudio.com/items?itemName=TomEnglert.ResXManager),来维护所有的语言包。
+
+引用控件库后,会在运行目录生成语言包文件夹,其命名方式形如zh-cn、en等。
\ No newline at end of file
diff --git a/doc/source/handycontrol/native_controls/comboBox/index.md b/doc/source/handycontrol/native_controls/comboBox/index.md
index 6c05f375..588fe39d 100644
--- a/doc/source/handycontrol/native_controls/comboBox/index.md
+++ b/doc/source/handycontrol/native_controls/comboBox/index.md
@@ -4,16 +4,40 @@ title: ComboBox 组合框
# ComboBoxBaseStyle
-原生组合框默认样式,不推荐直接使用,应该始终被其它样式以BasedOn的方式使用。
+原生组合框默认样式,不推荐直接使用,应该始终被其它样式以BasedOn的方式使用。原生组合框如果未设置任何样式,则默认使用该样式:
+
+- 默认样式
+``
+
# ComboBoxExtendBaseStyle : ComboBoxBaseStyle
原生组合框扩展默认样式,不推荐直接使用,应该始终被其它样式以BasedOn的方式使用。
-# ComboBoxPlusBaseStyle : ComboBoxExtendBaseStyle
-
-扩展组合框默认样式,不推荐直接使用,应该始终被其它样式以BasedOn的方式使用。
-
# ComboBoxExtend : ComboBoxExtendBaseStyle
-相对于原生组合框默认样式,它借助于附加属性可以实现标题、水印的功能。
\ No newline at end of file
+相对于原生组合框默认样式,它借助于附加属性可以实现标题、水印的功能。
+
+- 标题在上
+``
+
+
+- 标题在左
+``
+
+
+{% note warning %}
+标题在左时,为了多个输入框左侧对齐,需要设置标题宽度,标题宽度无需逐个设置,可在外部容器上统一设置。
+{% endnote %}
+
+- 标题在上,带有水印
+``
+
+
+- 标题在上,带有水印,且为必填
+``
+
+
+- 标题在上,带有水印,且为必填,同时自定义必填提示符
+``
+
\ No newline at end of file
diff --git a/doc/source/handycontrol/native_controls/contentControl/index.md b/doc/source/handycontrol/native_controls/contentControl/index.md
index ca12ad62..22b4365c 100644
--- a/doc/source/handycontrol/native_controls/contentControl/index.md
+++ b/doc/source/handycontrol/native_controls/contentControl/index.md
@@ -1,5 +1,5 @@
---
-title: 建设中
+title: ContentControl 内容控件
---
-建设中
\ No newline at end of file
+所有的`ContentControl`默认无法获得焦点
\ No newline at end of file
diff --git a/doc/source/handycontrol/native_controls/contextMenu/index.md b/doc/source/handycontrol/native_controls/contextMenu/index.md
index ca12ad62..fdcf837e 100644
--- a/doc/source/handycontrol/native_controls/contextMenu/index.md
+++ b/doc/source/handycontrol/native_controls/contextMenu/index.md
@@ -1,5 +1,22 @@
---
-title: 建设中
+title: ContextMenu 上下文菜单
---
-建设中
\ No newline at end of file
+# ContextMenuBaseStyle
+
+上下文菜单默认样式,不推荐直接使用,应该始终被其它样式以BasedOn的方式使用。
+
+{% note info no-icon %}
+用例:
+
+{% code %}
+
+
+
+
+
+
+
+{% endcode %}
+
+{% endnote %}
\ No newline at end of file
diff --git a/doc/source/handycontrol/native_controls/dataGrid/index.md b/doc/source/handycontrol/native_controls/dataGrid/index.md
index ca12ad62..7ea36f18 100644
--- a/doc/source/handycontrol/native_controls/dataGrid/index.md
+++ b/doc/source/handycontrol/native_controls/dataGrid/index.md
@@ -1,5 +1,32 @@
---
-title: 建设中
+title: DataGrid 数据表格
---
-建设中
\ No newline at end of file
+{% note info no-icon %}
+用例:
+
+{% code %}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+{% endcode %}
+
+{% endnote %}
\ No newline at end of file
diff --git a/doc/source/handycontrol/native_controls/datePicker/index.md b/doc/source/handycontrol/native_controls/datePicker/index.md
index ca12ad62..d4f5933e 100644
--- a/doc/source/handycontrol/native_controls/datePicker/index.md
+++ b/doc/source/handycontrol/native_controls/datePicker/index.md
@@ -1,5 +1,38 @@
---
-title: 建设中
+title: DatePicker 日期选择器
---
-建设中
\ No newline at end of file
+# DatePickerBaseStyle
+
+原生日期选择器默认样式,不推荐直接使用,应该始终被其它样式以BasedOn的方式使用。原生日期选择器如果未设置任何样式,则默认使用该样式:
+
+- 默认样式
+``
+
+
+# DatePickerExtendBaseStyle : DatePickerBaseStyle
+
+原生日期选择器扩展默认样式,不推荐直接使用,应该始终被其它样式以BasedOn的方式使用。
+
+# DatePickerExtend : DatePickerExtendBaseStyle
+
+- 标题在上
+``
+
+
+- 标题在左
+``
+
+
+{% note warning %}
+标题在左时,为了多个输入框左侧对齐,需要设置标题宽度,标题宽度无需逐个设置,可在外部容器上统一设置。
+{% endnote %}
+
+- 标题在上,带有水印
+[参见Combobox](../combobox)
+
+- 标题在上,带有水印,且为必填
+[参见Combobox](../combobox)
+
+- 标题在上,带有水印,且为必填,同时自定义必填提示符
+[参见Combobox](../combobox)
\ No newline at end of file
diff --git a/doc/source/handycontrol/native_controls/images/ComboBoxBaseStyle.png b/doc/source/handycontrol/native_controls/images/ComboBoxBaseStyle.png
new file mode 100644
index 00000000..84e4da34
Binary files /dev/null and b/doc/source/handycontrol/native_controls/images/ComboBoxBaseStyle.png differ
diff --git a/doc/source/handycontrol/native_controls/images/ComboBoxExtend_1.png b/doc/source/handycontrol/native_controls/images/ComboBoxExtend_1.png
new file mode 100644
index 00000000..31195a92
Binary files /dev/null and b/doc/source/handycontrol/native_controls/images/ComboBoxExtend_1.png differ
diff --git a/doc/source/handycontrol/native_controls/images/ComboBoxExtend_2.png b/doc/source/handycontrol/native_controls/images/ComboBoxExtend_2.png
new file mode 100644
index 00000000..a2b8060c
Binary files /dev/null and b/doc/source/handycontrol/native_controls/images/ComboBoxExtend_2.png differ
diff --git a/doc/source/handycontrol/native_controls/images/ComboBoxExtend_3.png b/doc/source/handycontrol/native_controls/images/ComboBoxExtend_3.png
new file mode 100644
index 00000000..56a4ef35
Binary files /dev/null and b/doc/source/handycontrol/native_controls/images/ComboBoxExtend_3.png differ
diff --git a/doc/source/handycontrol/native_controls/images/ComboBoxExtend_4.png b/doc/source/handycontrol/native_controls/images/ComboBoxExtend_4.png
new file mode 100644
index 00000000..9287b33d
Binary files /dev/null and b/doc/source/handycontrol/native_controls/images/ComboBoxExtend_4.png differ
diff --git a/doc/source/handycontrol/native_controls/images/ComboBoxExtend_5.png b/doc/source/handycontrol/native_controls/images/ComboBoxExtend_5.png
new file mode 100644
index 00000000..761325f3
Binary files /dev/null and b/doc/source/handycontrol/native_controls/images/ComboBoxExtend_5.png differ
diff --git a/doc/source/handycontrol/native_controls/images/DatePickerBaseStyle.png b/doc/source/handycontrol/native_controls/images/DatePickerBaseStyle.png
new file mode 100644
index 00000000..ddc505b1
Binary files /dev/null and b/doc/source/handycontrol/native_controls/images/DatePickerBaseStyle.png differ
diff --git a/doc/source/handycontrol/native_controls/images/DatePickerExtend_1.png b/doc/source/handycontrol/native_controls/images/DatePickerExtend_1.png
new file mode 100644
index 00000000..489f613f
Binary files /dev/null and b/doc/source/handycontrol/native_controls/images/DatePickerExtend_1.png differ
diff --git a/doc/source/handycontrol/native_controls/images/DatePickerExtend_2.png b/doc/source/handycontrol/native_controls/images/DatePickerExtend_2.png
new file mode 100644
index 00000000..2f350a68
Binary files /dev/null and b/doc/source/handycontrol/native_controls/images/DatePickerExtend_2.png differ
diff --git a/doc/source/handycontrol/quick_start/index.md b/doc/source/handycontrol/quick_start/index.md
new file mode 100644
index 00000000..9ec44b4c
--- /dev/null
+++ b/doc/source/handycontrol/quick_start/index.md
@@ -0,0 +1,25 @@
+---
+title: 快速开始
+---
+
+# 第一步
+下载源码或者以Nuget的方式引用控件库。
+源码链接:[HandyControl-Github](https://github.com/HandyOrg/HandyControl)
+Nuget链接:[HandyControl-Nuget](https://www.nuget.org/packages/HandyControl/)
+
+# 第二步
+在App.xaml中添加以下代码:
+
+``` xml
+
+
+
+
+
+
+
+
+```
+
+# 第三步
+添加命名空间:`xmlns:hc="https://handyorg.github.io/handycontrol"`
\ No newline at end of file
diff --git a/doc/themes/next/_config.yml b/doc/themes/next/_config.yml
index 23fc04f2..92a82f52 100644
--- a/doc/themes/next/_config.yml
+++ b/doc/themes/next/_config.yml
@@ -161,6 +161,7 @@ menu:
HandyControl:
default: /handycontrol/ ||
鸣谢: /tnx/ ||
+ 快速开始: /quick_start/ ||
# 总览: /overview/ ||
# 规范: /specifications/ ||
基础xaml定义:
diff --git a/src/Core_30/HandyControlDemo_Core_30/HandyControlDemo_Core30.csproj b/src/Core_30/HandyControlDemo_Core_30/HandyControlDemo_Core30.csproj
index b0f2f73d..b87ba43d 100644
--- a/src/Core_30/HandyControlDemo_Core_30/HandyControlDemo_Core30.csproj
+++ b/src/Core_30/HandyControlDemo_Core_30/HandyControlDemo_Core30.csproj
@@ -350,9 +350,6 @@
Resources\Img\LeftMainContent\brackets_Square_16xLG.png
-
- Resources\Img\LeftMainContent\PaneLayout_16x.png
-
diff --git a/src/Core_30/HandyControl_Core_30/Themes/Styles/Window.xaml b/src/Core_30/HandyControl_Core_30/Themes/Styles/Window.xaml
index 042c245e..7e5ec4c3 100644
--- a/src/Core_30/HandyControl_Core_30/Themes/Styles/Window.xaml
+++ b/src/Core_30/HandyControl_Core_30/Themes/Styles/Window.xaml
@@ -84,7 +84,7 @@
-
+
@@ -110,6 +110,7 @@
+
diff --git a/src/HandyControl.sln b/src/HandyControl.sln
index e6c455be..d4e18bab 100644
--- a/src/HandyControl.sln
+++ b/src/HandyControl.sln
@@ -61,7 +61,7 @@ Global
{DC966E3D-BCFF-4652-98CF-070E5494749A}.Debug-Net47|Any CPU.Build.0 = Debug-Net47|Any CPU
{DC966E3D-BCFF-4652-98CF-070E5494749A}.Debug-Net48|Any CPU.ActiveCfg = Debug-Net48|Any CPU
{DC966E3D-BCFF-4652-98CF-070E5494749A}.Debug-Net48|Any CPU.Build.0 = Debug-Net48|Any CPU
- {DC966E3D-BCFF-4652-98CF-070E5494749A}.Release-Core30|Any CPU.ActiveCfg = Release-Net48|Any CPU
+ {DC966E3D-BCFF-4652-98CF-070E5494749A}.Release-Core30|Any CPU.ActiveCfg = Release-Net45|Any CPU
{DC966E3D-BCFF-4652-98CF-070E5494749A}.Release-Net40|Any CPU.ActiveCfg = Release-Net45|Any CPU
{DC966E3D-BCFF-4652-98CF-070E5494749A}.Release-Net45|Any CPU.ActiveCfg = Release-Net45|Any CPU
{DC966E3D-BCFF-4652-98CF-070E5494749A}.Release-Net45|Any CPU.Build.0 = Release-Net45|Any CPU
@@ -71,24 +71,24 @@ Global
{DC966E3D-BCFF-4652-98CF-070E5494749A}.Release-Net47|Any CPU.Build.0 = Release-Net47|Any CPU
{DC966E3D-BCFF-4652-98CF-070E5494749A}.Release-Net48|Any CPU.ActiveCfg = Release-Net48|Any CPU
{DC966E3D-BCFF-4652-98CF-070E5494749A}.Release-Net48|Any CPU.Build.0 = Release-Net48|Any CPU
- {9A7B52E6-94BB-4E7E-BB6A-7CF6761B79A7}.Debug-Core30|Any CPU.ActiveCfg = Debug-Net47|Any CPU
- {9A7B52E6-94BB-4E7E-BB6A-7CF6761B79A7}.Debug-Net40|Any CPU.ActiveCfg = Debug-Net47|Any CPU
- {9A7B52E6-94BB-4E7E-BB6A-7CF6761B79A7}.Debug-Net45|Any CPU.ActiveCfg = Debug-Net48|Any CPU
- {9A7B52E6-94BB-4E7E-BB6A-7CF6761B79A7}.Debug-Net45|Any CPU.Build.0 = Debug-Net48|Any CPU
- {9A7B52E6-94BB-4E7E-BB6A-7CF6761B79A7}.Debug-Net462|Any CPU.ActiveCfg = Debug-Net48|Any CPU
- {9A7B52E6-94BB-4E7E-BB6A-7CF6761B79A7}.Debug-Net462|Any CPU.Build.0 = Debug-Net48|Any CPU
- {9A7B52E6-94BB-4E7E-BB6A-7CF6761B79A7}.Debug-Net47|Any CPU.ActiveCfg = Debug-Net48|Any CPU
- {9A7B52E6-94BB-4E7E-BB6A-7CF6761B79A7}.Debug-Net47|Any CPU.Build.0 = Debug-Net48|Any CPU
+ {9A7B52E6-94BB-4E7E-BB6A-7CF6761B79A7}.Debug-Core30|Any CPU.ActiveCfg = Debug-Net45|Any CPU
+ {9A7B52E6-94BB-4E7E-BB6A-7CF6761B79A7}.Debug-Net40|Any CPU.ActiveCfg = Debug-Net45|Any CPU
+ {9A7B52E6-94BB-4E7E-BB6A-7CF6761B79A7}.Debug-Net45|Any CPU.ActiveCfg = Debug-Net45|Any CPU
+ {9A7B52E6-94BB-4E7E-BB6A-7CF6761B79A7}.Debug-Net45|Any CPU.Build.0 = Debug-Net45|Any CPU
+ {9A7B52E6-94BB-4E7E-BB6A-7CF6761B79A7}.Debug-Net462|Any CPU.ActiveCfg = Debug-Net462|Any CPU
+ {9A7B52E6-94BB-4E7E-BB6A-7CF6761B79A7}.Debug-Net462|Any CPU.Build.0 = Debug-Net462|Any CPU
+ {9A7B52E6-94BB-4E7E-BB6A-7CF6761B79A7}.Debug-Net47|Any CPU.ActiveCfg = Debug-Net47|Any CPU
+ {9A7B52E6-94BB-4E7E-BB6A-7CF6761B79A7}.Debug-Net47|Any CPU.Build.0 = Debug-Net47|Any CPU
{9A7B52E6-94BB-4E7E-BB6A-7CF6761B79A7}.Debug-Net48|Any CPU.ActiveCfg = Debug-Net48|Any CPU
{9A7B52E6-94BB-4E7E-BB6A-7CF6761B79A7}.Debug-Net48|Any CPU.Build.0 = Debug-Net48|Any CPU
- {9A7B52E6-94BB-4E7E-BB6A-7CF6761B79A7}.Release-Core30|Any CPU.ActiveCfg = Release-Net48|Any CPU
+ {9A7B52E6-94BB-4E7E-BB6A-7CF6761B79A7}.Release-Core30|Any CPU.ActiveCfg = Release-Net45|Any CPU
{9A7B52E6-94BB-4E7E-BB6A-7CF6761B79A7}.Release-Net40|Any CPU.ActiveCfg = Release-Net47|Any CPU
- {9A7B52E6-94BB-4E7E-BB6A-7CF6761B79A7}.Release-Net45|Any CPU.ActiveCfg = Release-Net48|Any CPU
- {9A7B52E6-94BB-4E7E-BB6A-7CF6761B79A7}.Release-Net45|Any CPU.Build.0 = Release-Net48|Any CPU
- {9A7B52E6-94BB-4E7E-BB6A-7CF6761B79A7}.Release-Net462|Any CPU.ActiveCfg = Release-Net48|Any CPU
- {9A7B52E6-94BB-4E7E-BB6A-7CF6761B79A7}.Release-Net462|Any CPU.Build.0 = Release-Net48|Any CPU
- {9A7B52E6-94BB-4E7E-BB6A-7CF6761B79A7}.Release-Net47|Any CPU.ActiveCfg = Release-Net48|Any CPU
- {9A7B52E6-94BB-4E7E-BB6A-7CF6761B79A7}.Release-Net47|Any CPU.Build.0 = Release-Net48|Any CPU
+ {9A7B52E6-94BB-4E7E-BB6A-7CF6761B79A7}.Release-Net45|Any CPU.ActiveCfg = Release-Net45|Any CPU
+ {9A7B52E6-94BB-4E7E-BB6A-7CF6761B79A7}.Release-Net45|Any CPU.Build.0 = Release-Net45|Any CPU
+ {9A7B52E6-94BB-4E7E-BB6A-7CF6761B79A7}.Release-Net462|Any CPU.ActiveCfg = Release-Net462|Any CPU
+ {9A7B52E6-94BB-4E7E-BB6A-7CF6761B79A7}.Release-Net462|Any CPU.Build.0 = Release-Net462|Any CPU
+ {9A7B52E6-94BB-4E7E-BB6A-7CF6761B79A7}.Release-Net47|Any CPU.ActiveCfg = Release-Net47|Any CPU
+ {9A7B52E6-94BB-4E7E-BB6A-7CF6761B79A7}.Release-Net47|Any CPU.Build.0 = Release-Net47|Any CPU
{9A7B52E6-94BB-4E7E-BB6A-7CF6761B79A7}.Release-Net48|Any CPU.ActiveCfg = Release-Net48|Any CPU
{9A7B52E6-94BB-4E7E-BB6A-7CF6761B79A7}.Release-Net48|Any CPU.Build.0 = Release-Net48|Any CPU
{BE4A567D-B6E0-413E-8F64-E1A53B4F9366}.Debug-Core30|Any CPU.ActiveCfg = Debug|Any CPU
diff --git a/src/HandyControl_Net_GE45.sln b/src/HandyControl_Net_GE45.sln
index b321309b..b2e1b9ae 100644
--- a/src/HandyControl_Net_GE45.sln
+++ b/src/HandyControl_Net_GE45.sln
@@ -49,8 +49,8 @@ Global
{DC966E3D-BCFF-4652-98CF-070E5494749A}.Release-Net47|Any CPU.Build.0 = Release-Net47|Any CPU
{DC966E3D-BCFF-4652-98CF-070E5494749A}.Release-Net48|Any CPU.ActiveCfg = Release-Net48|Any CPU
{DC966E3D-BCFF-4652-98CF-070E5494749A}.Release-Net48|Any CPU.Build.0 = Release-Net48|Any CPU
- {9A7B52E6-94BB-4E7E-BB6A-7CF6761B79A7}.Debug-Net45|Any CPU.ActiveCfg = Debug-Net48|Any CPU
- {9A7B52E6-94BB-4E7E-BB6A-7CF6761B79A7}.Debug-Net45|Any CPU.Build.0 = Debug-Net48|Any CPU
+ {9A7B52E6-94BB-4E7E-BB6A-7CF6761B79A7}.Debug-Net45|Any CPU.ActiveCfg = Debug-Net47|Any CPU
+ {9A7B52E6-94BB-4E7E-BB6A-7CF6761B79A7}.Debug-Net45|Any CPU.Build.0 = Debug-Net47|Any CPU
{9A7B52E6-94BB-4E7E-BB6A-7CF6761B79A7}.Debug-Net462|Any CPU.ActiveCfg = Debug-Net48|Any CPU
{9A7B52E6-94BB-4E7E-BB6A-7CF6761B79A7}.Debug-Net462|Any CPU.Build.0 = Debug-Net48|Any CPU
{9A7B52E6-94BB-4E7E-BB6A-7CF6761B79A7}.Debug-Net47|Any CPU.ActiveCfg = Debug-Net48|Any CPU
diff --git a/src/Net_40/HandyControlDemo_Net_40/HandyControlDemo_Net_40.csproj b/src/Net_40/HandyControlDemo_Net_40/HandyControlDemo_Net_40.csproj
index c46db263..61536a9e 100644
--- a/src/Net_40/HandyControlDemo_Net_40/HandyControlDemo_Net_40.csproj
+++ b/src/Net_40/HandyControlDemo_Net_40/HandyControlDemo_Net_40.csproj
@@ -395,9 +395,6 @@
TextTemplatingFileGenerator
MessageToken.cs
-
- Resources\Img\LeftMainContent\PaneLayout_16x.png
-
Resources\Img\LeftMainContent\brackets_Square_16xLG.png
diff --git a/src/Net_40/HandyControl_Net_40/Themes/Styles/Window.xaml b/src/Net_40/HandyControl_Net_40/Themes/Styles/Window.xaml
index 14fcb0ae..a49c4a49 100644
--- a/src/Net_40/HandyControl_Net_40/Themes/Styles/Window.xaml
+++ b/src/Net_40/HandyControl_Net_40/Themes/Styles/Window.xaml
@@ -84,7 +84,7 @@
-
+
@@ -110,6 +110,7 @@
+
diff --git a/src/Net_GE45/HandyControlDemo_Net_GE45/HandyControlDemo_Net_GE45.csproj b/src/Net_GE45/HandyControlDemo_Net_GE45/HandyControlDemo_Net_GE45.csproj
index d61b5420..57947a1f 100644
--- a/src/Net_GE45/HandyControlDemo_Net_GE45/HandyControlDemo_Net_GE45.csproj
+++ b/src/Net_GE45/HandyControlDemo_Net_GE45/HandyControlDemo_Net_GE45.csproj
@@ -15,6 +15,29 @@
+ v4.5
+
+
+ AnyCPU
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+ v4.5
+
+
+ AnyCPU
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+ v4.6.2
AnyCPU
@@ -38,6 +61,26 @@
4
v4.8
+
+ AnyCPU
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+ v4.5
+
+
+ AnyCPU
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+ v4.6.2
+
AnyCPU
pdbonly
@@ -414,9 +457,6 @@
TextTemplatingFileGenerator
MessageToken.cs
-
- Resources\Img\LeftMainContent\PaneLayout_16x.png
-
Resources\Img\LeftMainContent\brackets_Square_16xLG.png
diff --git a/src/Net_GE45/HandyControl_Net_GE45/HandyControl_Net_GE45.csproj b/src/Net_GE45/HandyControl_Net_GE45/HandyControl_Net_GE45.csproj
index c1f090f3..96b1b1bc 100644
--- a/src/Net_GE45/HandyControl_Net_GE45/HandyControl_Net_GE45.csproj
+++ b/src/Net_GE45/HandyControl_Net_GE45/HandyControl_Net_GE45.csproj
@@ -13,6 +13,7 @@
+ v4.5
true
@@ -161,6 +162,7 @@
Properties\Langs\Lang.resx
PublicResXFileCodeGenerator
Lang.Designer.cs
+ Designer
diff --git a/src/Net_GE45/HandyControl_Net_GE45/Themes/Styles/Window.xaml b/src/Net_GE45/HandyControl_Net_GE45/Themes/Styles/Window.xaml
index 042c245e..7e5ec4c3 100644
--- a/src/Net_GE45/HandyControl_Net_GE45/Themes/Styles/Window.xaml
+++ b/src/Net_GE45/HandyControl_Net_GE45/Themes/Styles/Window.xaml
@@ -84,7 +84,7 @@
-
+
@@ -110,6 +110,7 @@
+
diff --git a/src/Shared/HandyControlDemo_Shared/Data/MessageToken.cs b/src/Shared/HandyControlDemo_Shared/Data/MessageToken.cs
index ae9773a7..10cb3212 100644
--- a/src/Shared/HandyControlDemo_Shared/Data/MessageToken.cs
+++ b/src/Shared/HandyControlDemo_Shared/Data/MessageToken.cs
@@ -98,8 +98,6 @@
public static readonly string RangeSliderDemoCtl = nameof(RangeSliderDemoCtl);
- public static readonly string RelativePanelDemoCtl = nameof(RelativePanelDemoCtl);
-
public static readonly string ButtonDemoCtl = nameof(ButtonDemoCtl);
public static readonly string RepeatButtonDemoCtl = nameof(RepeatButtonDemoCtl);
diff --git a/src/Shared/HandyControlDemo_Shared/Data/MessageToken.tt b/src/Shared/HandyControlDemo_Shared/Data/MessageToken.tt
index c2da95c5..23421817 100644
--- a/src/Shared/HandyControlDemo_Shared/Data/MessageToken.tt
+++ b/src/Shared/HandyControlDemo_Shared/Data/MessageToken.tt
@@ -51,8 +51,7 @@ var controlList = new List
"DialogDemoCtl",
"SideMenuDemoCtl",
"GridDemoCtl",
- "RangeSliderDemoCtl",
- "RelativePanelDemoCtl"
+ "RangeSliderDemoCtl"
};
var styleList = new List
{
diff --git a/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.Designer.cs b/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.Designer.cs
index c7bbd51a..d4b6a070 100644
--- a/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.Designer.cs
+++ b/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.Designer.cs
@@ -816,6 +816,15 @@ namespace HandyControlDemo.Properties.Langs {
}
}
+ ///
+ /// 查找类似 关 的本地化字符串。
+ ///
+ public static string Off {
+ get {
+ return ResourceManager.GetString("Off", resourceCulture);
+ }
+ }
+
///
/// 查找类似 确定 的本地化字符串。
///
@@ -825,6 +834,15 @@ namespace HandyControlDemo.Properties.Langs {
}
}
+ ///
+ /// 查找类似 开 的本地化字符串。
+ ///
+ public static string On {
+ get {
+ return ResourceManager.GetString("On", resourceCulture);
+ }
+ }
+
///
/// 查找类似 点击打开背景模糊窗口 的本地化字符串。
///
diff --git a/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.en.resx b/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.en.resx
index 05550cb0..68dc57fe 100644
--- a/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.en.resx
+++ b/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.en.resx
@@ -612,4 +612,10 @@
RelativePanel
+
+ On
+
+
+ Off
+
\ No newline at end of file
diff --git a/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.resx b/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.resx
index 1ee1deb2..84a43c24 100644
--- a/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.resx
+++ b/src/Shared/HandyControlDemo_Shared/Properties/Langs/Lang.resx
@@ -612,4 +612,10 @@
相对布局
+
+ 开
+
+
+ 关
+
\ No newline at end of file
diff --git a/src/Shared/HandyControlDemo_Shared/Resources/Img/LeftMainContent/PaneLayout_16x.png b/src/Shared/HandyControlDemo_Shared/Resources/Img/LeftMainContent/PaneLayout_16x.png
deleted file mode 100644
index 9ee0b431..00000000
Binary files a/src/Shared/HandyControlDemo_Shared/Resources/Img/LeftMainContent/PaneLayout_16x.png and /dev/null differ
diff --git a/src/Shared/HandyControlDemo_Shared/Service/DataService.cs b/src/Shared/HandyControlDemo_Shared/Service/DataService.cs
index d48350b2..2e2cb04c 100644
--- a/src/Shared/HandyControlDemo_Shared/Service/DataService.cs
+++ b/src/Shared/HandyControlDemo_Shared/Service/DataService.cs
@@ -19,7 +19,7 @@ namespace HandyControlDemo.Service
for (var i = 1; i <= 20; i++)
{
var dataList = new List();
- for (int j = 0; j < 3; j++)
+ for (var j = 0; j < 3; j++)
{
dataList.Add(new DemoDataModel
{
diff --git a/src/Shared/HandyControlDemo_Shared/UserControl/Main/LeftMainContent.xaml b/src/Shared/HandyControlDemo_Shared/UserControl/Main/LeftMainContent.xaml
index 619c18bb..ebcdc91b 100644
--- a/src/Shared/HandyControlDemo_Shared/UserControl/Main/LeftMainContent.xaml
+++ b/src/Shared/HandyControlDemo_Shared/UserControl/Main/LeftMainContent.xaml
@@ -325,11 +325,6 @@
-
-
-
-
-
diff --git a/src/Shared/HandyControlDemo_Shared/UserControl/Styles/NativeComboBoxDemoCtl.xaml b/src/Shared/HandyControlDemo_Shared/UserControl/Styles/NativeComboBoxDemoCtl.xaml
index 4503f163..0b3b45f4 100644
--- a/src/Shared/HandyControlDemo_Shared/UserControl/Styles/NativeComboBoxDemoCtl.xaml
+++ b/src/Shared/HandyControlDemo_Shared/UserControl/Styles/NativeComboBoxDemoCtl.xaml
@@ -13,7 +13,7 @@
-
+
diff --git a/src/Shared/HandyControlDemo_Shared/UserControl/Styles/ToggleButtonDemoCtl.xaml b/src/Shared/HandyControlDemo_Shared/UserControl/Styles/ToggleButtonDemoCtl.xaml
index aba17c7e..34ec4516 100644
--- a/src/Shared/HandyControlDemo_Shared/UserControl/Styles/ToggleButtonDemoCtl.xaml
+++ b/src/Shared/HandyControlDemo_Shared/UserControl/Styles/ToggleButtonDemoCtl.xaml
@@ -104,6 +104,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Shared/HandyControlDemo_Shared/Window/AboutWindow.xaml b/src/Shared/HandyControlDemo_Shared/Window/AboutWindow.xaml
index 460eefcf..b0e301a8 100644
--- a/src/Shared/HandyControlDemo_Shared/Window/AboutWindow.xaml
+++ b/src/Shared/HandyControlDemo_Shared/Window/AboutWindow.xaml
@@ -1,22 +1,23 @@
+ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+ xmlns:hc="https://handyorg.github.io/handycontrol"
+ mc:Ignorable="d"
+ xmlns:langs="clr-namespace:HandyControlDemo.Properties.Langs"
+ Title="{x:Static langs:Lang.About}"
+ ShowTitle="True"
+ BorderThickness="1"
+ BorderBrush="#262e2f"
+ Style="{StaticResource WindowWin10}"
+ ResizeMode="NoResize"
+ ShowInTaskbar="False"
+ WindowStartupLocation="CenterOwner"
+ Width="340"
+ Height="220">
+
diff --git a/src/Shared/HandyControl_Shared/Controls/Attach/DataGridAttach.cs b/src/Shared/HandyControl_Shared/Controls/Attach/DataGridAttach.cs
index 42348946..12a0e725 100644
--- a/src/Shared/HandyControl_Shared/Controls/Attach/DataGridAttach.cs
+++ b/src/Shared/HandyControl_Shared/Controls/Attach/DataGridAttach.cs
@@ -246,7 +246,7 @@ namespace HandyControl.Controls
{
if (show)
{
- for (int i = 0; i < itemsCount; i++)
+ for (var i = 0; i < itemsCount; i++)
{
var row = (DataGridRow)generator.ContainerFromIndex(i);
if (row != null)
@@ -257,7 +257,7 @@ namespace HandyControl.Controls
}
else
{
- for (int i = 0; i < itemsCount; i++)
+ for (var i = 0; i < itemsCount; i++)
{
var row = (DataGridRow)generator.ContainerFromIndex(i);
if (row != null)
diff --git a/src/Shared/HandyControl_Shared/Controls/ColorPicker/ColorPicker.cs b/src/Shared/HandyControl_Shared/Controls/ColorPicker/ColorPicker.cs
index 8f9cf4b8..04754ddd 100644
--- a/src/Shared/HandyControl_Shared/Controls/ColorPicker/ColorPicker.cs
+++ b/src/Shared/HandyControl_Shared/Controls/ColorPicker/ColorPicker.cs
@@ -333,7 +333,7 @@ namespace HandyControl.Controls
}
var list = new List();
- for (int i = 0; i < 2; i++)
+ for (var i = 0; i < 2; i++)
{
list.Add(false);
}
diff --git a/src/Shared/HandyControl_Shared/Controls/Image/GifImage.cs b/src/Shared/HandyControl_Shared/Controls/Image/GifImage.cs
index 9c7a91de..98557f94 100644
--- a/src/Shared/HandyControl_Shared/Controls/Image/GifImage.cs
+++ b/src/Shared/HandyControl_Shared/Controls/Image/GifImage.cs
@@ -321,7 +321,7 @@ namespace HandyControl.Controls
try
{
- for (int i = 0; i < count; i++)
+ for (var i = 0; i < count; i++)
{
guids[i] = (Guid)ExternDllHelper.PtrToStructure((IntPtr)((long)buffer + size * i), typeof(Guid));
}
diff --git a/src/Shared/HandyControl_Shared/Controls/Loading/LoadingBase.cs b/src/Shared/HandyControl_Shared/Controls/Loading/LoadingBase.cs
index 07d9acf2..f0c8c906 100644
--- a/src/Shared/HandyControl_Shared/Controls/Loading/LoadingBase.cs
+++ b/src/Shared/HandyControl_Shared/Controls/Loading/LoadingBase.cs
@@ -36,11 +36,11 @@ namespace HandyControl.Controls
public static readonly DependencyProperty DotCountProperty = DependencyProperty.Register(
"DotCount", typeof(int), typeof(LoadingBase),
- new FrameworkPropertyMetadata(5, FrameworkPropertyMetadataOptions.AffectsRender));
+ new FrameworkPropertyMetadata(ValueBoxes.Int5Box, FrameworkPropertyMetadataOptions.AffectsRender));
public static readonly DependencyProperty DotIntervalProperty = DependencyProperty.Register(
"DotInterval", typeof(double), typeof(LoadingBase),
- new FrameworkPropertyMetadata(10.0, FrameworkPropertyMetadataOptions.AffectsRender));
+ new FrameworkPropertyMetadata(ValueBoxes.Double10Box, FrameworkPropertyMetadataOptions.AffectsRender));
public static readonly DependencyProperty DotBorderBrushProperty = DependencyProperty.Register(
"DotBorderBrush", typeof(Brush), typeof(LoadingBase),
diff --git a/src/Shared/HandyControl_Shared/Controls/Other/AnimationPath.cs b/src/Shared/HandyControl_Shared/Controls/Other/AnimationPath.cs
index e9e4a87e..be6feef0 100644
--- a/src/Shared/HandyControl_Shared/Controls/Other/AnimationPath.cs
+++ b/src/Shared/HandyControl_Shared/Controls/Other/AnimationPath.cs
@@ -122,7 +122,7 @@ namespace HandyControl.Controls
StretchProperty.AddOwner(typeof(AnimationPath), new FrameworkPropertyMetadata(Stretch.Uniform,
OnPropertiesChanged));
- StrokeThicknessProperty.AddOwner(typeof(AnimationPath), new FrameworkPropertyMetadata(1.0,
+ StrokeThicknessProperty.AddOwner(typeof(AnimationPath), new FrameworkPropertyMetadata(ValueBoxes.Double1Box,
OnPropertiesChanged));
}
diff --git a/src/Shared/HandyControl_Shared/Controls/Other/Pagination.cs b/src/Shared/HandyControl_Shared/Controls/Other/Pagination.cs
index 1f774884..bc72ea0f 100644
--- a/src/Shared/HandyControl_Shared/Controls/Other/Pagination.cs
+++ b/src/Shared/HandyControl_Shared/Controls/Other/Pagination.cs
@@ -82,7 +82,7 @@ namespace HandyControl.Controls
/// 最大页数
///
public static readonly DependencyProperty MaxPageCountProperty = DependencyProperty.Register(
- "MaxPageCount", typeof(int), typeof(Pagination), new PropertyMetadata(1, (o, args) =>
+ "MaxPageCount", typeof(int), typeof(Pagination), new PropertyMetadata(ValueBoxes.Int1Box, (o, args) =>
{
if (o is Pagination pagination && args.NewValue is int value)
{
@@ -156,7 +156,7 @@ namespace HandyControl.Controls
/// 当前页
///
public static readonly DependencyProperty PageIndexProperty = DependencyProperty.Register(
- "PageIndex", typeof(int), typeof(Pagination), new PropertyMetadata(1, (o, args) =>
+ "PageIndex", typeof(int), typeof(Pagination), new PropertyMetadata(ValueBoxes.Int1Box, (o, args) =>
{
if (o is Pagination pagination && args.NewValue is int value)
{
@@ -312,7 +312,7 @@ namespace HandyControl.Controls
}
var sub = PageIndex;
- for (int i = 0; i < MaxPageInterval - 1; i++)
+ for (var i = 0; i < MaxPageInterval - 1; i++)
{
if (--sub > 1)
{
@@ -324,7 +324,7 @@ namespace HandyControl.Controls
}
}
var add = PageIndex;
- for (int i = 0; i < MaxPageInterval - 1; i++)
+ for (var i = 0; i < MaxPageInterval - 1; i++)
{
if (++add < MaxPageCount)
{
diff --git a/src/Shared/HandyControl_Shared/Controls/Other/RadioGroup.cs b/src/Shared/HandyControl_Shared/Controls/Other/RadioGroup.cs
index 97b9bc38..86a22690 100644
--- a/src/Shared/HandyControl_Shared/Controls/Other/RadioGroup.cs
+++ b/src/Shared/HandyControl_Shared/Controls/Other/RadioGroup.cs
@@ -33,7 +33,7 @@ namespace HandyControl.Controls
base.OnVisualChildrenChanged(visualAdded, visualRemoved);
var count = Items.Count;
- for (int i = 0; i < count; i++)
+ for (var i = 0; i < count; i++)
{
var item = (RadioButton)Items[i];
item.Style = ItemStyleSelector?.SelectStyle(item, this);
diff --git a/src/Shared/HandyControl_Shared/Controls/Panel/RelativePanel.cs b/src/Shared/HandyControl_Shared/Controls/Panel/RelativePanel.cs
deleted file mode 100644
index 85993180..00000000
--- a/src/Shared/HandyControl_Shared/Controls/Panel/RelativePanel.cs
+++ /dev/null
@@ -1,132 +0,0 @@
-using System.ComponentModel;
-using System.Windows;
-using System.Windows.Controls;
-using HandyControl.Tools.Converter;
-
-namespace HandyControl.Controls
-{
- public class RelativePanel : Panel
- {
- public static readonly DependencyProperty AboveProperty = DependencyProperty.RegisterAttached(
- "Above", typeof(DependencyObject), typeof(RelativePanel), new PropertyMetadata(default(DependencyObject)));
-
- public static void SetAbove(DependencyObject element, DependencyObject value) => element.SetValue(AboveProperty, value);
-
- [TypeConverter(typeof(NameReferenceConverter))]
- public static DependencyObject GetAbove(DependencyObject element) => (DependencyObject)element.GetValue(AboveProperty);
-
- public static readonly DependencyProperty AlignBottomWithProperty = DependencyProperty.RegisterAttached(
- "AlignBottomWith", typeof(DependencyObject), typeof(RelativePanel), new PropertyMetadata(default(DependencyObject)));
-
- public static void SetAlignBottomWith(DependencyObject element, DependencyObject value) => element.SetValue(AlignBottomWithProperty, value);
-
- [TypeConverter(typeof(NameReferenceConverter))]
- public static DependencyObject GetAlignBottomWith(DependencyObject element) => (DependencyObject)element.GetValue(AlignBottomWithProperty);
-
- public static readonly DependencyProperty AlignBottomWithPanelProperty = DependencyProperty.RegisterAttached(
- "AlignBottomWithPanel", typeof(bool), typeof(RelativePanel), new PropertyMetadata(default(bool)));
-
- public static void SetAlignBottomWithPanel(DependencyObject element, bool value) => element.SetValue(AlignBottomWithPanelProperty, value);
-
- public static bool GetAlignBottomWithPanel(DependencyObject element) => (bool)element.GetValue(AlignBottomWithPanelProperty);
-
- public static readonly DependencyProperty AlignHorizontalCenterWithProperty = DependencyProperty.RegisterAttached(
- "AlignHorizontalCenterWith", typeof(DependencyObject), typeof(RelativePanel), new PropertyMetadata(default(DependencyObject)));
-
- public static void SetAlignHorizontalCenterWith(DependencyObject element, DependencyObject value) => element.SetValue(AlignHorizontalCenterWithProperty, value);
-
- [TypeConverter(typeof(NameReferenceConverter))]
- public static DependencyObject GetAlignHorizontalCenterWith(DependencyObject element) => (DependencyObject)element.GetValue(AlignHorizontalCenterWithProperty);
-
- public static readonly DependencyProperty AlignHorizontalCenterWithPanelProperty = DependencyProperty.RegisterAttached(
- "AlignHorizontalCenterWithPanel", typeof(bool), typeof(RelativePanel), new PropertyMetadata(default(bool)));
-
- public static void SetAlignHorizontalCenterWithPanel(DependencyObject element, bool value) => element.SetValue(AlignHorizontalCenterWithPanelProperty, value);
-
- public static bool GetAlignHorizontalCenterWithPanel(DependencyObject element) => (bool)element.GetValue(AlignHorizontalCenterWithPanelProperty);
-
- public static readonly DependencyProperty AlignLeftWithProperty = DependencyProperty.RegisterAttached(
- "AlignLeftWith", typeof(DependencyObject), typeof(RelativePanel), new PropertyMetadata(default(DependencyObject)));
-
- public static void SetAlignLeftWith(DependencyObject element, DependencyObject value) => element.SetValue(AlignLeftWithProperty, value);
-
- [TypeConverter(typeof(NameReferenceConverter))]
- public static DependencyObject GetAlignLeftWith(DependencyObject element) => (DependencyObject)element.GetValue(AlignLeftWithProperty);
-
- public static readonly DependencyProperty AlignLeftWithPanelProperty = DependencyProperty.RegisterAttached(
- "AlignLeftWithPanel", typeof(bool), typeof(RelativePanel), new PropertyMetadata(default(bool)));
-
- public static void SetAlignLeftWithPanel(DependencyObject element, bool value) => element.SetValue(AlignLeftWithPanelProperty, value);
-
- public static bool GetAlignLeftWithPanel(DependencyObject element) => (bool)element.GetValue(AlignLeftWithPanelProperty);
-
- public static readonly DependencyProperty AlignRightWithProperty = DependencyProperty.RegisterAttached(
- "AlignRightWith", typeof(DependencyObject), typeof(RelativePanel), new PropertyMetadata(default(DependencyObject)));
-
- public static void SetAlignRightWith(DependencyObject element, DependencyObject value) => element.SetValue(AlignRightWithProperty, value);
-
- [TypeConverter(typeof(NameReferenceConverter))]
- public static DependencyObject GetAlignRightWith(DependencyObject element) => (DependencyObject)element.GetValue(AlignRightWithProperty);
-
- public static readonly DependencyProperty AlignRightWithPanelProperty = DependencyProperty.RegisterAttached(
- "AlignRightWithPanel", typeof(bool), typeof(RelativePanel), new PropertyMetadata(default(bool)));
-
- public static void SetAlignRightWithPanel(DependencyObject element, bool value) => element.SetValue(AlignRightWithPanelProperty, value);
-
- public static bool GetAlignRightWithPanel(DependencyObject element) => (bool)element.GetValue(AlignRightWithPanelProperty);
-
- public static readonly DependencyProperty AlignTopWithProperty = DependencyProperty.RegisterAttached(
- "AlignTopWith", typeof(DependencyObject), typeof(RelativePanel), new PropertyMetadata(default(DependencyObject)));
-
- public static void SetAlignTopWith(DependencyObject element, DependencyObject value) => element.SetValue(AlignTopWithProperty, value);
-
- [TypeConverter(typeof(NameReferenceConverter))]
- public static DependencyObject GetAlignTopWith(DependencyObject element) => (DependencyObject)element.GetValue(AlignTopWithProperty);
-
- public static readonly DependencyProperty AlignTopWithPanelProperty = DependencyProperty.RegisterAttached(
- "AlignTopWithPanel", typeof(bool), typeof(RelativePanel), new PropertyMetadata(default(bool)));
-
- public static void SetAlignTopWithPanel(DependencyObject element, bool value) => element.SetValue(AlignTopWithPanelProperty, value);
-
- public static bool GetAlignTopWithPanel(DependencyObject element) => (bool)element.GetValue(AlignTopWithPanelProperty);
-
- public static readonly DependencyProperty AlignVerticalCenterWithProperty = DependencyProperty.RegisterAttached(
- "AlignVerticalCenterWith", typeof(DependencyObject), typeof(RelativePanel), new PropertyMetadata(default(DependencyObject)));
-
- public static void SetAlignVerticalCenterWith(DependencyObject element, DependencyObject value) => element.SetValue(AlignVerticalCenterWithProperty, value);
-
- [TypeConverter(typeof(NameReferenceConverter))]
- public static DependencyObject GetAlignVerticalCenterWith(DependencyObject element) => (DependencyObject)element.GetValue(AlignVerticalCenterWithProperty);
-
- public static readonly DependencyProperty AlignVerticalCenterWithPanelProperty = DependencyProperty.RegisterAttached(
- "AlignVerticalCenterWithPanel", typeof(bool), typeof(RelativePanel), new PropertyMetadata(default(bool)));
-
- public static void SetAlignVerticalCenterWithPanel(DependencyObject element, bool value) => element.SetValue(AlignVerticalCenterWithPanelProperty, value);
-
- public static bool GetAlignVerticalCenterWithPanel(DependencyObject element) => (bool)element.GetValue(AlignVerticalCenterWithPanelProperty);
-
- public static readonly DependencyProperty BelowProperty = DependencyProperty.RegisterAttached(
- "Below", typeof(DependencyObject), typeof(RelativePanel), new PropertyMetadata(default(DependencyObject)));
-
- public static void SetBelow(DependencyObject element, DependencyObject value) => element.SetValue(BelowProperty, value);
-
- [TypeConverter(typeof(NameReferenceConverter))]
- public static DependencyObject GetBelow(DependencyObject element) => (DependencyObject)element.GetValue(BelowProperty);
-
- public static readonly DependencyProperty LeftOfProperty = DependencyProperty.RegisterAttached(
- "LeftOf", typeof(DependencyObject), typeof(RelativePanel), new PropertyMetadata(default(DependencyObject)));
-
- public static void SetLeftOf(DependencyObject element, DependencyObject value) => element.SetValue(LeftOfProperty, value);
-
- [TypeConverter(typeof(NameReferenceConverter))]
- public static DependencyObject GetLeftOf(DependencyObject element) => (DependencyObject)element.GetValue(LeftOfProperty);
-
- public static readonly DependencyProperty RightOfProperty = DependencyProperty.RegisterAttached(
- "RightOf", typeof(DependencyObject), typeof(RelativePanel), new PropertyMetadata(default(DependencyObject)));
-
- public static void SetRightOf(DependencyObject element, DependencyObject value) => element.SetValue(RightOfProperty, value);
-
- [TypeConverter(typeof(NameReferenceConverter))]
- public static DependencyObject GetRightOf(DependencyObject element) => (DependencyObject)element.GetValue(RightOfProperty);
- }
-}
\ No newline at end of file
diff --git a/src/Shared/HandyControl_Shared/Controls/Slider/RangeSlider/RangeTrack.cs b/src/Shared/HandyControl_Shared/Controls/Slider/RangeSlider/RangeTrack.cs
index 99e4dfad..678ba24f 100644
--- a/src/Shared/HandyControl_Shared/Controls/Slider/RangeSlider/RangeTrack.cs
+++ b/src/Shared/HandyControl_Shared/Controls/Slider/RangeSlider/RangeTrack.cs
@@ -353,7 +353,7 @@ namespace HandyControl.Controls
{
if (_visualChildren == null) return 0;
- for (int i = 0; i < _visualChildren.Length; i++)
+ for (var i = 0; i < _visualChildren.Length; i++)
{
if (_visualChildren[i] == null) return i;
}
diff --git a/src/Shared/HandyControl_Shared/Controls/StepBar/StepBar.cs b/src/Shared/HandyControl_Shared/Controls/StepBar/StepBar.cs
index d14056f4..4a085542 100644
--- a/src/Shared/HandyControl_Shared/Controls/StepBar/StepBar.cs
+++ b/src/Shared/HandyControl_Shared/Controls/StepBar/StepBar.cs
@@ -38,7 +38,7 @@ namespace HandyControl.Controls
var count = Items.Count;
if (count <= 0) return;
- for (int i = 0; i < count; i++)
+ for (var i = 0; i < count; i++)
{
if (ItemContainerGenerator.ContainerFromIndex(i) is StepBarItem stepBarItem)
{
@@ -48,7 +48,7 @@ namespace HandyControl.Controls
if (StepIndex < count)
{
- for (int i = 0; i < StepIndex; i++)
+ for (var i = 0; i < StepIndex; i++)
{
if (ItemContainerGenerator.ContainerFromIndex(i) is StepBarItem stepBarItem)
{
diff --git a/src/Shared/HandyControl_Shared/Controls/Time/Clock/ListClock.cs b/src/Shared/HandyControl_Shared/Controls/Time/Clock/ListClock.cs
index 80376a1d..dc739dda 100644
--- a/src/Shared/HandyControl_Shared/Controls/Time/Clock/ListClock.cs
+++ b/src/Shared/HandyControl_Shared/Controls/Time/Clock/ListClock.cs
@@ -102,7 +102,7 @@ namespace HandyControl.Controls
private void CreateItemsSource(ItemsControl selector, int count)
{
var list = new List();
- for (int i = 0; i < count; i++)
+ for (var i = 0; i < count; i++)
{
list.Add(i.ToString("#00"));
}
diff --git a/src/Shared/HandyControl_Shared/Controls/Window/MessageBox.cs b/src/Shared/HandyControl_Shared/Controls/Window/MessageBox.cs
index 06623095..4d688cd8 100644
--- a/src/Shared/HandyControl_Shared/Controls/Window/MessageBox.cs
+++ b/src/Shared/HandyControl_Shared/Controls/Window/MessageBox.cs
@@ -340,7 +340,10 @@ namespace HandyControl.Controls
messageBox.ImageBrush = ResourceHelper.GetResource(info.IconBrushKey);
}
- messageBox.Style = info.Style;
+ if (info.Style != null)
+ {
+ messageBox.Style = info.Style;
+ }
messageBox.ShowDialog();
}));
#else
@@ -356,7 +359,10 @@ namespace HandyControl.Controls
messageBox.ImageBrush = ResourceHelper.GetResource(info.IconBrushKey);
}
- messageBox.Style = info.Style;
+ if (info.Style != null)
+ {
+ messageBox.Style = info.Style;
+ }
SystemSounds.Asterisk.Play();
messageBox.ShowDialog();
});
diff --git a/src/Shared/HandyControl_Shared/Controls/Window/Window.cs b/src/Shared/HandyControl_Shared/Controls/Window/Window.cs
index 4da6e868..8e19d481 100644
--- a/src/Shared/HandyControl_Shared/Controls/Window/Window.cs
+++ b/src/Shared/HandyControl_Shared/Controls/Window/Window.cs
@@ -9,7 +9,6 @@ using HandyControl.Tools.Extension;
using Microsoft.Windows.Shell;
#else
using System.Windows.Shell;
-
#endif
namespace HandyControl.Controls
diff --git a/src/Shared/HandyControl_Shared/Data/Args/KeyboardHookEventArgs.cs b/src/Shared/HandyControl_Shared/Data/Args/KeyboardHookEventArgs.cs
index 717c6384..4f50f3e1 100644
--- a/src/Shared/HandyControl_Shared/Data/Args/KeyboardHookEventArgs.cs
+++ b/src/Shared/HandyControl_Shared/Data/Args/KeyboardHookEventArgs.cs
@@ -3,7 +3,7 @@ using System.Windows.Input;
namespace HandyControl.Data
{
- internal class KeyboardHookEventArgs : EventArgs
+ public class KeyboardHookEventArgs : EventArgs
{
public bool IsSystemKey { get; }
diff --git a/src/Shared/HandyControl_Shared/Data/Enum/RelativeStatus.cs b/src/Shared/HandyControl_Shared/Data/Enum/RelativeStatus.cs
deleted file mode 100644
index 9712713f..00000000
--- a/src/Shared/HandyControl_Shared/Data/Enum/RelativeStatus.cs
+++ /dev/null
@@ -1,37 +0,0 @@
-namespace HandyControl_Shared.Data.Enum
-{
- public enum RelativeStatus
- {
- LeftOf,
-
- Above,
-
- RightOf,
-
- Below,
-
- AlignLeftWith,
-
- AlignTopWith,
-
- AlignRightWith,
-
- AlignBottomWith,
-
- AlignHorizontalCenterWith,
-
- AlignVerticalCenterWith,
-
- AlignLeftWithPanel,
-
- AlignTopWithPanel,
-
- AlignRightWithPanel,
-
- AlignBottomWithPanel,
-
- AlignHorizontalCenterWithPanel,
-
- AlignVerticalCenterWithPanel
- }
-}
diff --git a/src/Shared/HandyControl_Shared/Data/Gif/GifImageInfo.cs b/src/Shared/HandyControl_Shared/Data/Gif/GifImageInfo.cs
index 2a1aedb3..3da1c3b8 100644
--- a/src/Shared/HandyControl_Shared/Data/Gif/GifImageInfo.cs
+++ b/src/Shared/HandyControl_Shared/Data/Gif/GifImageInfo.cs
@@ -66,7 +66,7 @@ namespace HandyControl.Data
//
var values = frameDelayItem.Value;
_frameDelay = new int[FrameCount];
- for (int i = 0; i < FrameCount; ++i)
+ for (var i = 0; i < FrameCount; ++i)
{
_frameDelay[i] = values[i * 4] + 256 * values[i * 4 + 1] + 256 * 256 * values[i * 4 + 2] + 256 * 256 * 256 * values[i * 4 + 3];
}
diff --git a/src/Shared/HandyControl_Shared/Expression/Drawing/CommonExtensions.cs b/src/Shared/HandyControl_Shared/Expression/Drawing/CommonExtensions.cs
index a3e22a5a..8abc90c0 100644
--- a/src/Shared/HandyControl_Shared/Expression/Drawing/CommonExtensions.cs
+++ b/src/Shared/HandyControl_Shared/Expression/Drawing/CommonExtensions.cs
@@ -59,7 +59,7 @@ namespace HandyControl.Expression.Drawing
}
else
{
- for (int i = list.Count - 1; i >= count; i--)
+ for (var i = list.Count - 1; i >= count; i--)
{
list.RemoveAt(i);
}
@@ -89,7 +89,7 @@ namespace HandyControl.Expression.Drawing
}
else
{
- for (int i = list.Count; i < count; i++)
+ for (var i = list.Count; i < count; i++)
{
list.Add((factory == null) ? default(T) : factory());
}
diff --git a/src/Shared/HandyControl_Shared/Expression/Shapes/PrimitiveShape.cs b/src/Shared/HandyControl_Shared/Expression/Shapes/PrimitiveShape.cs
index fd217485..716f48e3 100644
--- a/src/Shared/HandyControl_Shared/Expression/Shapes/PrimitiveShape.cs
+++ b/src/Shared/HandyControl_Shared/Expression/Shapes/PrimitiveShape.cs
@@ -2,6 +2,7 @@
using System.Windows;
using System.Windows.Media;
using System.Windows.Shapes;
+using HandyControl.Data;
using HandyControl.Expression.Drawing;
using HandyControl.Expression.Media;
@@ -16,7 +17,7 @@ namespace HandyControl.Expression.Shapes
StretchProperty.OverrideMetadata(typeof(PrimitiveShape),
new DrawingPropertyMetadata(Stretch.Fill, DrawingPropertyMetadataOptions.AffectsRender));
StrokeThicknessProperty.OverrideMetadata(typeof(PrimitiveShape),
- new DrawingPropertyMetadata(1.0, DrawingPropertyMetadataOptions.AffectsRender));
+ new DrawingPropertyMetadata(ValueBoxes.Double1Box, DrawingPropertyMetadataOptions.AffectsRender));
}
protected sealed override Geometry DefiningGeometry =>
diff --git a/src/Shared/HandyControl_Shared/HandyControl_Shared.projitems b/src/Shared/HandyControl_Shared/HandyControl_Shared.projitems
index 780c94e0..368a727b 100644
--- a/src/Shared/HandyControl_Shared/HandyControl_Shared.projitems
+++ b/src/Shared/HandyControl_Shared/HandyControl_Shared.projitems
@@ -18,13 +18,12 @@
-
-
+
@@ -273,6 +272,10 @@
+
+
+
+
diff --git a/src/Shared/HandyControl_Shared/Themes/Styles/ToggleButton.xaml b/src/Shared/HandyControl_Shared/Themes/Styles/ToggleButton.xaml
index 97645eed..9204464a 100644
--- a/src/Shared/HandyControl_Shared/Themes/Styles/ToggleButton.xaml
+++ b/src/Shared/HandyControl_Shared/Themes/Styles/ToggleButton.xaml
@@ -3,6 +3,7 @@
xmlns:controls="clr-namespace:HandyControl.Controls">
+
@@ -101,6 +102,124 @@
+
+
+