Merge branch 'master' into MenuItemAttach

This commit is contained in:
NaBian authored and GitHub committed 2023-09-28 21:14:31 +08:00
commit 60b359ec20
1325 files changed
+85761 -74012

No files matched your search

-32
View File
@@ -1,32 +0,0 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: ''
assignees: ''
---
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected behavior**
A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, add screenshots to help explain your problem.
**Environment (please complete the following information):**
- .net: [e.g. 4.6.2]
- IDE [e.g. vs2017]
- Version [e.g. 1.0.0]
**Additional context**
Add any other context about the problem here.
+96
View File
@@ -0,0 +1,96 @@
name: Bug report
description: File a bug report
title: "Bug title"
labels: []
body:
- type: textarea
validations:
required: true
attributes:
label: Describe the bug
description: Please enter a short, clear description of the bug.
- type: textarea
validations:
required: true
attributes:
label: Steps to reproduce the bug
description: Please provide any required setup and steps to reproduce the behavior.
placeholder: |
1. Go to '...'
2. Click on '....'
- type: textarea
attributes:
label: Expected behavior
description: Please provide a description of what you expected to happen
- type: textarea
attributes:
label: Screenshots
description: If applicable, add screenshots here to help explain your problem
- type: dropdown
attributes:
label: NuGet package version
options:
- "HandyControl 3.4.0"
- "HandyControl 3.3.0"
- "HandyControl 3.2.0"
- "HandyControl 3.1.0"
- "HandyControl 3.0.0"
- "HandyControls (Custom version) 3.4.0"
- "HandyControls (Custom version) 3.3.11"
- "HandyControls (Custom version) 3.3.10"
- "HandyControls (Custom version) 3.3.9"
- "HandyControls (Custom version) 3.3.8.1"
- "HandyControls (Custom version) 3.3.8"
- "HandyControls (Custom version) 3.3.7"
- type: dropdown
attributes:
label: IDE
description: Which Visual Studio versions did you see the issue on?
multiple: true
options:
- "Visual Studio 2022-preview"
- "Visual Studio 2022"
- "Visual Studio 2019"
- "Visual Studio 2017"
- type: dropdown
attributes:
label: Framework type
description: please specify for which framework type you have encountered the issue.
multiple: true
options:
- ".Net 6.0"
- ".Net 5.0"
- ".Net Core 3.1"
- ".Net Core 3.0"
- ".Net Framework 4.8"
- ".Net Framework 4.7.2"
- ".Net Framework 4.7.1"
- ".Net Framework 4.7.0"
- ".Net Framework 4.6.2"
- ".Net Framework 4.6.1"
- ".Net Framework 4.6.0"
- ".Net Framework 4.5.2"
- ".Net Framework 4.5.1"
- ".Net Framework 4.5.0"
- ".Net Framework 4.0.0"
- type: dropdown
attributes:
label: Windows version
description: Which Windows versions did you see the issue on?
multiple: true
options:
- "Insider Build (xxxxx)"
- "Windows 11 (22000)"
- "May 2021 Update (19043)"
- "October 2020 Update (19042)"
- "May 2020 Update (19041)"
- "November 2019 Update (18363)"
- "May 2019 Update (18362)"
- "October 2018 Update (17763)"
- "April 2018 Update (17134)"
- "Fall Creators Update (16299)"
- "Creators Update (15063)"
- type: textarea
attributes:
label: Additional context
description: Enter any other applicable info here
-20
View File
@@ -1,20 +0,0 @@
---
name: Feature request
about: Suggest an idea for this project
title: '[Feature request]'
labels: ''
assignees: ''
---
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.
@@ -0,0 +1,36 @@
name: Feature request
description: Suggest an idea for the HandyControl
title: "Feature request title"
body:
- type: dropdown
validations:
required: true
attributes:
label: Feature request type
options:
- sample request
- enhancement
- type: textarea
validations:
required: true
attributes:
label: Is your feature request related to a problem? Please describe
description: Please provide a description of the sample request or enhancement
placeholder: |
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
- type: textarea
validations:
required: true
attributes:
label: Describe the solution you'd like
description: A clear and concise description of what you want to happen
- type: textarea
attributes:
label: Describe alternatives you've considered
description: A clear and concise description of any alternative solutions or features you've considered
- type: textarea
attributes:
label: Additional context
description: Enter any other applicable info here
placeholder: |
Add any other context or screenshots about the feature request here.
+11 -7
View File
@@ -1,5 +1,3 @@
name: build
on: [push, pull_request]
jobs:
@@ -8,9 +6,15 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@master
- name: Build Net_40
run: dotnet build src/Net_40/HandyControl_Net_40/HandyControl_Net_40.csproj -p:Configuration=Release-Net40
- name: Build Net_GE45
run: dotnet build src/Net_GE45/HandyControl_Net_GE45/HandyControl_Net_GE45.csproj -p:Configuration=Release
- name: Setup .NET Core SDK
uses: actions/setup-dotnet@master
with:
dotnet-version: '7.0.x'
include-prerelease: true
- name: Build
shell: pwsh
run: |
cd build
.\build.ps1
+7 -1
View File
@@ -13,6 +13,12 @@ jobs:
uses: actions/checkout@v2
with:
ref: ${{ github.head_ref }}
- name: Setup .NET Core SDK
uses: actions/setup-dotnet@master
with:
dotnet-version: '7.0.x'
include-prerelease: true
# 代码文件编码规范机器人,详细请看 [dotnet 在 GitHub 的 Action 上部署自动代码编码规范机器人](https://blog.lindexi.com/post/dotnet-%E5%9C%A8-GitHub-%E7%9A%84-Action-%E4%B8%8A%E9%83%A8%E7%BD%B2%E8%87%AA%E5%8A%A8%E4%BB%A3%E7%A0%81%E7%BC%96%E7%A0%81%E8%A7%84%E8%8C%83%E6%9C%BA%E5%99%A8%E4%BA%BA.html)
- name: Install dotnetCampus.EncodingNormalior
@@ -48,4 +54,4 @@ jobs:
assignees: NaBian
reviewers: NaBian
# 对应的上传分支
branch: t/bot/fix-codeformatting
branch: t/bot/fix-codeformatting
+28
View File
@@ -0,0 +1,28 @@
on: workflow_dispatch
jobs:
push-to-myget:
runs-on: windows-latest
steps:
- name: checkout
uses: actions/checkout@master
- name: Setup .NET Core SDK
uses: actions/setup-dotnet@master
with:
dotnet-version: '7.0.x'
include-prerelease: true
- name: setup nuget.exe
uses: NuGet/setup-nuget@v1.0.5
- name: build and push
shell: pwsh
run: |
cd build
.\build.ps1
nuget pack build-for-myget.nuspec -version 3.5.0-beta.${env:GITHUB_RUN_NUMBER}
$nupkgName = @(gci *.nupkg)[0].Name
$mygetSourcePath = "https://www.myget.org/F/handycontrol"
nuget setApiKey ${{ secrets.MYGETTOKEN }} -Source $mygetSourcePath
nuget push $nupkgName -Source $mygetSourcePath
+5 -2
View File
@@ -6,9 +6,12 @@
packages/
build/*
!build/build.cake
!build/build.nuspec
!build/build*.nuspec
!build/create_lang_nuspec_file.py
!build/build.ps1
!build/LICENSE
!build/icon.png
!build/tools/
build/tools/*
!build/tools/packages.config
!build/tools/VisualStudioToolsManifest.xml
!build/tools/VisualStudioToolsManifest.xml
@@ -1,53 +0,0 @@
using System;
using System.Runtime.InteropServices;
using System.Threading;
using Microsoft.VisualStudio.Shell;
using Task = System.Threading.Tasks.Task;
namespace HandyControl_VS2019
{
/// <summary>
/// This is the class that implements the package exposed by this assembly.
/// </summary>
/// <remarks>
/// <para>
/// 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.
/// </para>
/// <para>
/// To get loaded into VS, the package must be referred by &lt;Asset Type="Microsoft.VisualStudio.VsPackage" ...&gt; in .vsixmanifest file.
/// </para>
/// </remarks>
[PackageRegistration(UseManagedResourcesOnly = true, AllowsBackgroundLoading = true)]
[Guid(PackageGuidString)]
public sealed class HandyControl_VS2019Package : AsyncPackage
{
/// <summary>
/// HandyControl_VS2019Package GUID string.
/// </summary>
public const string PackageGuidString = "157ef242-83b5-47d0-8f2f-e21dc8308151";
#region Package Members
/// <summary>
/// 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.
/// </summary>
/// <param name="cancellationToken">A cancellation token to monitor for initialization cancellation, which can occur when VS is shutting down.</param>
/// <param name="progress">A provider for progress updates.</param>
/// <returns>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.</returns>
protected override async Task InitializeAsync(CancellationToken cancellationToken, IProgress<ServiceProgressData> 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
}
}
@@ -1,29 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<VSTemplate Version="3.0.0" Type="Project" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" xmlns:sdk="http://schemas.microsoft.com/developer/vstemplate-sdkextension/2010">
<TemplateData>
<Name>HandyControl WPF App(.NET Framework)</Name>
<Description>Creates a HandyControl WPF App(.NET Framework)</Description>
<Icon>icon.ico</Icon>
<ProjectType>CSharp</ProjectType>
<RequiredFrameworkVersion>4.7</RequiredFrameworkVersion>
<MaxFrameworkVersion>4.7.2</MaxFrameworkVersion>
<TemplateID>38e0a2df-5858-4bde-b373-7c50bc982906</TemplateID>
<CreateNewFolder>true</CreateNewFolder>
<DefaultName>HandyControlProject</DefaultName>
<ProvideDefaultName>true</ProvideDefaultName>
<LanguageTag>csharp</LanguageTag>
<PlatformTag>windows</PlatformTag>
<ProjectTypeTag>desktop</ProjectTypeTag>
<ProjectTypeTag>HandyControl</ProjectTypeTag>
</TemplateData>
<TemplateContent>
<Project File="ProjectTemplate.csproj" ReplaceParameters="true">
<ProjectItem ReplaceParameters="true" TargetFileName="Properties\AssemblyInfo.cs">AssemblyInfo.cs</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="App.xaml">App.xaml</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="App.xaml.cs">App.xaml.cs</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="MainWindow.xaml">MainWindow.xaml</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="MainWindow.xaml.cs">MainWindow.xaml.cs</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="packages.config">packages.config</ProjectItem>
</Project>
</TemplateContent>
</VSTemplate>
-4
View File
@@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="HandyControl" version="2.5.0.1" targetFramework="net47" />
</packages>
@@ -1,24 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>netcoreapp3.0</TargetFramework>
<UseWPF>true</UseWPF>
<AssemblyName>$safeprojectname$</AssemblyName>
<RootNamespace>$safeprojectname$</RootNamespace>
<Version>1.0.0.0</Version>
<Configurations>Debug;Release</Configurations>
<Copyright>Copyright © $username$ 2018-2020</Copyright>
<FileVersion>1.0.0.0</FileVersion>
<AssemblyVersion>1.0.0.0</AssemblyVersion>
<LangVersion>latest</LangVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<DefineConstants>TRACE;Core</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
<DefineConstants>TRACE;Core</DefineConstants>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="HandyControl" Version="2.5.0.1" />
</ItemGroup>
</Project>
@@ -1,14 +0,0 @@
using System.Reflection;
using System.Runtime.InteropServices;
[assembly: AssemblyTitle("HandyControl_VS2019_WpfCoreApp")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("HandyControl_VS2019_WpfCoreApp")]
[assembly: AssemblyCopyright("Copyright © HandyOrg 2018-2020")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
[assembly: ComVisible(false)]
[assembly: AssemblyVersion("2.5.0")]
[assembly: AssemblyFileVersion("2.5.0")]
@@ -1,27 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<VSTemplate Version="3.0.0" Type="Project" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" xmlns:sdk="http://schemas.microsoft.com/developer/vstemplate-sdkextension/2010">
<TemplateData>
<Name>HandyControl WPF App(.NET Core)</Name>
<Description>Creates a HandyControl WPF App(.NET Core)</Description>
<Icon>icon.ico</Icon>
<ProjectType>CSharp</ProjectType>
<CreateNewFolder>true</CreateNewFolder>
<DefaultName>HandyControlProject</DefaultName>
<ProvideDefaultName>true</ProvideDefaultName>
<LanguageTag>csharp</LanguageTag>
<PlatformTag>windows</PlatformTag>
<ProjectTypeTag>desktop</ProjectTypeTag>
<ProjectTypeTag>HandyControl</ProjectTypeTag>
<LocationField>Enabled</LocationField>
<EnableLocationBrowseButton>true</EnableLocationBrowseButton>
<CreateInPlace>true</CreateInPlace>
</TemplateData>
<TemplateContent>
<Project File="ProjectTemplate.csproj" ReplaceParameters="true">
<ProjectItem ReplaceParameters="true" TargetFileName="App.xaml">App.xaml</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="App.xaml.cs">App.xaml.cs</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="MainWindow.xaml">MainWindow.xaml</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="MainWindow.xaml.cs">MainWindow.xaml.cs</ProjectItem>
</Project>
</TemplateContent>
</VSTemplate>
+1 -1
View File
@@ -1,6 +1,6 @@
MIT License
Copyright (c) 2018-2020 HandyOrg
Copyright (c) 2018-2023 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
+171 -100
View File
@@ -1,19 +1,48 @@
[中文](https://gitee.com/handyorg/HandyControl/blob/master/README-cn.md) - [English](https://github.com/HandyOrg/HandyControl/blob/master/README.md)
## 友情链接
![logo](https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/icon.png)
[SimpleFactoryGenerator](https://github.com/DingpingZhang/SimpleFactoryGenerator) - A simple factory source generator that enables the pattern to not violate the open-close principle.
![dotnet-version](https://img.shields.io/badge/.net-%3E%3D4.0-blue.svg) ![csharp-version](https://img.shields.io/badge/C%23-8.0-blue.svg) ![IDE-version](https://img.shields.io/badge/IDE-vs2019-blue.svg) [![nuget-version](https://img.shields.io/nuget/v/HandyControl.svg)](https://www.nuget.org/packages/HandyControl) ![Github-build-status](https://github.com/HandyOrg/HandyControl/workflows/build/badge.svg) [![Join the chat at https://gitter.im/HandyControl/Lobby](https://badges.gitter.im/HandyControl/Lobby.svg)](https://gitter.im/HandyControl/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![wiki](https://img.shields.io/badge/wiki-Complete-brightgreen.svg)](https://github.com/ghost1372/HandyControl/wiki) [![Nuget](https://img.shields.io/nuget/dt/handycontrol)](https://www.nuget.org/packages/HandyControl)
[WpfExtensions](https://github.com/DingpingZhang/WpfExtensions) - Some syntactic sugar for Wpf development.
# Welcome to HandyControl
<p align="center">
<img align="center" src="https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/Cover.png">
</p>
<p align="center">
<a href="https://github.com/HandyOrg/HandyControl/blob/master/README-cn.md">中文</a>
❤
<a href="https://github.com/HandyOrg/HandyControl/blob/master/README.md">English</a>
</p>
<p align="center">
<img alt="dotnet-version" src="https://img.shields.io/badge/.net-%3E%3D4.0-blue.svg"></img>
<img alt="csharp-version" src="https://img.shields.io/badge/C%23-latest-blue.svg"></img>
<img alt="IDE-version" src="https://img.shields.io/badge/IDE-vs2022-blue.svg"></img>
<a href="https://www.nuget.org/packages/HandyControl">
<img alt="nuget-version" src="https://img.shields.io/nuget/v/HandyControl.svg"></img>
</a>
<a href="https://www.myget.org/feed/handycontrol/package/nuget/HandyControl">
<img alt="myget-version" src="https://img.shields.io/myget/handycontrol/v/handycontrol?color=orange&label=myget"></img>
</a>
<a href="https://github.com/HandyOrg/HandyControl/actions?query=workflow%3Abuild">
<img alt="Github-build-status" src="https://github.com/HandyOrg/HandyControl/workflows/build/badge.svg"></img>
</a>
<a href="https://www.nuget.org/packages/HandyControl">
<img alt="Nuget" src="https://img.shields.io/nuget/dt/handycontrol"></img>
</a>
</p>
## 特别声明
HandyControl 项目已加入 [dotNET China](https://gitee.com/dotnetchina) 组织。<br/>
![dotnetchina](https://images.gitee.com/uploads/images/2021/0324/120117_2da9922c_416720.png "132645_21007ea0_974299.png")
## 面向中国
### 加入讨论
### 技术交流
| | 西江月群 | 定风波群 | 广寒秋群 |
|-|:-:|:-:|:-:|
| 群号码 | [![qq-group](https://img.shields.io/badge/qq-714704041-red.svg)](//shang.qq.com/wpa/qunwpa?idkey=a571e5553c9d41e49c4f22f3a8b2865451497a795ff281fedf3285def247efc1) | [![qq-group](https://img.shields.io/badge/qq-858784803-red.svg)](//shang.qq.com/wpa/qunwpa?idkey=5c18622a0f6ee07a6f33afa8cdb85b1f72ea50e878271dfcec919c76b55afee7) | 微信群 |
| 二维码 | ![qq-group](https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/qq_group_1.png) | ![qq-group](https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/qq_group_2.png) | ![wechat-group](https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/wechat_group.png) |
[https://join.slack.com/t/handycontrol/shared_invite/zt-sw29prqd-okFmRlmETdtWhnF7C3foxA](https://join.slack.com/t/handycontrol/shared_invite/zt-sw29prqd-okFmRlmETdtWhnF7C3foxA)
### 码云
@@ -24,80 +53,114 @@
[https://handyorg.github.io/handycontrol/](https://handyorg.github.io/handycontrol/)
### 赞助
如果您觉得HandyControl还不错,并且刚好有些闲钱,那么可以选择以下两种方式来赞助(记得入群联系我们呀~~):
* [以HandyControl的名义为慈善事业做贡献](http://www.chinacharityfederation.org/ConfirmDonation/0.html?zhijie=3)
* [以HandyControl的名义为慈善事业做贡献(请联系我们上赞助墙)](http://www.chinacharityfederation.org/ConfirmDonation/0.html?zhijie=3)
* 为我们购买防脱洗发水
* 为我们购买防脱洗发水 (支付宝扫码)
![qrcode](https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/qrcode.png)
## Contributors
## 贡献者
<a href="https://github.com/ghost1372" target="_blank"><img style="border-radius:50%!important" width="64px" alt="ghost1372" src="https://avatars0.githubusercontent.com/u/9213496?s=64&v=4"></a>
<a href="https://github.com/DingpingZhang" target="_blank"><img style="border-radius:50%!important" width="64px" alt="DingpingZhang" src="https://avatars0.githubusercontent.com/u/8541016?s=64&v=4"></a>
<a href="https://github.com/M0n7y5" target="_blank"><img style="border-radius:50%!important" width="64px" alt="M0n7y5" src="https://avatars0.githubusercontent.com/u/17201053?s=64&v=4"></a>
<a href="https://github.com/guanguanchuangyu" target="_blank"><img style="border-radius:50%!important" width="64px" alt="guanguanchuangyu" src="https://avatars1.githubusercontent.com/u/25916858?s=64&v=4"></a>
<a href="https://github.com/yanchao891012" target="_blank"><img style="border-radius:50%!important" width="64px" alt="yanchao891012" src="https://avatars0.githubusercontent.com/u/16846702?s=64&v=4"></a>
<a href="https://github.com/noctwolf" target="_blank"><img style="border-radius:50%!important" width="64px" alt="noctwolf" src="https://avatars3.githubusercontent.com/u/21022467?s=64&v=4"></a>
<a href="https://github.com/xianyun666" target="_blank"><img style="border-radius:50%!important" width="64px" alt="xianyun666" src="https://avatars1.githubusercontent.com/u/22339210?s=64&v=4"></a>
<a href="https://github.com/afunc233" target="_blank"><img style="border-radius:50%!important" width="64px" alt="afunc233" src="https://avatars1.githubusercontent.com/u/19919631?s=64&v=4"></a>
<a href="https://github.com/DinoChan" target="_blank"><img style="border-radius:50%!important" width="64px" alt="DinoChan" src="https://avatars1.githubusercontent.com/u/6076257?s=64&v=4"></a>
<a href="https://github.com/MrZhangYuan" target="_blank"><img style="border-radius:50%!important" width="64px" alt="MrZhangYuan" src="https://avatars2.githubusercontent.com/u/16384123?s=64&v=4"></a>
<a href="https://github.com/JinhuaChen-OMEC" target="_blank"><img style="border-radius:50%!important" width="64px" alt="JinhuaChen-OMEC" src="https://avatars0.githubusercontent.com/u/47024703?s=64&v=4"></a>
<a href="https://github.com/seedtyx" target="_blank"><img style="border-radius:50%!important" width="64px" alt="seedtyx" src="https://avatars2.githubusercontent.com/u/5851975?s=64&v=4"></a>
<a href="https://github.com/KleinPan" target="_blank"><img style="border-radius:50%!important" width="64px" alt="KleinPan" src="https://avatars2.githubusercontent.com/u/34428802?s=64&v=4"></a>
<a href="https://github.com/yxhq" target="_blank"><img style="border-radius:50%!important" width="64px" alt="yxhq" src="https://avatars3.githubusercontent.com/u/10378954?s=64&v=4"></a>
<a href="https://github.com/AiHaibara" target="_blank"><img style="border-radius:50%!important" width="64px" alt="AiHaibara" src="https://avatars3.githubusercontent.com/u/5195234?s=64&v=4"></a>
<a href="https://github.com/walterlv" target="_blank"><img style="border-radius:50%!important" width="64px" alt="walterlv" src="https://avatars3.githubusercontent.com/u/9959623?s=64&v=4"></a>
<a href="https://github.com/Luoyingliang" target="_blank"><img style="border-radius:50%!important" width="64px" alt="Luoyingliang" src="https://avatars2.githubusercontent.com/u/29297262?s=64&v=4"></a>
<a href="https://github.com/lindexi" target="_blank"><img style="border-radius:50%!important" width="64px" alt="lindexi" src="https://avatars3.githubusercontent.com/u/16054566?s=64&v=4"></a>
<a href="https://github.com/danwalmsley" target="_blank"><img style="border-radius:50%!important" width="64px" alt="danwalmsley" src="https://avatars1.githubusercontent.com/u/4672627?s=64&v=4"></a>
<a href="https://github.com/varKeytrap" target="_blank"><img style="border-radius:50%!important" width="64px" alt="varKeytrap" src="https://avatars0.githubusercontent.com/u/17864005?s=64&v=4"></a>
<a href="https://github.com/xsnakes" target="_blank"><img style="border-radius:50%!important" width="64px" alt="xsnakes" src="https://avatars1.githubusercontent.com/u/4363683?s=64&v=4"></a>
<a href="https://github.com/mmasdivins" target="_blank"><img style="border-radius:50%!important" width="64px" alt="mmasdivins" src="https://avatars1.githubusercontent.com/u/63245359?s=64&v=4"></a>
<a href="https://github.com/GF-Huang" target="_blank"><img style="border-radius:50%!important" width="64px" alt="GF-Huang" src="https://avatars1.githubusercontent.com/u/4510984?s=64v=4"></a>
<a href="https://github.com/cuiliang" target="_blank"><img style="border-radius:50%!important" width="64px" alt="cuiliang" src="https://avatars2.githubusercontent.com/u/1972649?s=64&v=4"></a>
<a href="https://github.com/lwqwag" target="_blank"><img style="border-radius:50%!important" width="64px" alt="lwqwag" src="https://avatars3.githubusercontent.com/u/29883542?s=64&v=4"></a>
<a href="https://github.com/ghost1372" target="_blank"><img style="border-radius:50%!important" width="64px" alt="ghost1372" src="https://avatars.githubusercontent.com/u/9213496?s=64&v=4"></a>
<a href="https://github.com/DingpingZhang" target="_blank"><img style="border-radius:50%!important" width="64px" alt="DingpingZhang" src="https://avatars.githubusercontent.com/u/8541016?s=64&v=4"></a>
<a href="https://github.com/M0n7y5" target="_blank"><img style="border-radius:50%!important" width="64px" alt="M0n7y5" src="https://avatars.githubusercontent.com/u/17201053?s=64&v=4"></a>
<a href="https://github.com/guanguanchuangyu" target="_blank"><img style="border-radius:50%!important" width="64px" alt="guanguanchuangyu" src="https://avatars.githubusercontent.com/u/25916858?s=64&v=4"></a>
<a href="https://github.com/yanchao891012" target="_blank"><img style="border-radius:50%!important" width="64px" alt="yanchao891012" src="https://avatars.githubusercontent.com/u/16846702?s=64&v=4"></a>
<a href="https://github.com/noctwolf" target="_blank"><img style="border-radius:50%!important" width="64px" alt="noctwolf" src="https://avatars.githubusercontent.com/u/21022467?s=64&v=4"></a>
<a href="https://github.com/xianyun666" target="_blank"><img style="border-radius:50%!important" width="64px" alt="xianyun666" src="https://avatars.githubusercontent.com/u/22339210?s=64&v=4"></a>
<a href="https://github.com/afunc233" target="_blank"><img style="border-radius:50%!important" width="64px" alt="afunc233" src="https://avatars.githubusercontent.com/u/19919631?s=64&v=4"></a>
<a href="https://github.com/DinoChan" target="_blank"><img style="border-radius:50%!important" width="64px" alt="DinoChan" src="https://avatars.githubusercontent.com/u/6076257?s=64&v=4"></a>
<a href="https://github.com/MrZhangYuan" target="_blank"><img style="border-radius:50%!important" width="64px" alt="MrZhangYuan" src="https://avatars.githubusercontent.com/u/16384123?s=64&v=4"></a>
<a href="https://github.com/JinhuaChen-OMEC" target="_blank"><img style="border-radius:50%!important" width="64px" alt="JinhuaChen-OMEC" src="https://avatars.githubusercontent.com/u/47024703?s=64&v=4"></a>
<a href="https://github.com/seedtyx" target="_blank"><img style="border-radius:50%!important" width="64px" alt="seedtyx" src="https://avatars.githubusercontent.com/u/5851975?s=64&v=4"></a>
<a href="https://github.com/KleinPan" target="_blank"><img style="border-radius:50%!important" width="64px" alt="KleinPan" src="https://avatars.githubusercontent.com/u/34428802?s=64&v=4"></a>
<a href="https://github.com/yxhq" target="_blank"><img style="border-radius:50%!important" width="64px" alt="yxhq" src="https://avatars.githubusercontent.com/u/10378954?s=64&v=4"></a>
<a href="https://github.com/AiHaibara" target="_blank"><img style="border-radius:50%!important" width="64px" alt="AiHaibara" src="https://avatars.githubusercontent.com/u/5195234?s=64&v=4"></a>
<a href="https://github.com/walterlv" target="_blank"><img style="border-radius:50%!important" width="64px" alt="walterlv" src="https://avatars.githubusercontent.com/u/9959623?s=64&v=4"></a>
<a href="https://github.com/Luoyingliang" target="_blank"><img style="border-radius:50%!important" width="64px" alt="Luoyingliang" src="https://avatars.githubusercontent.com/u/29297262?s=64&v=4"></a>
<a href="https://github.com/lindexi" target="_blank"><img style="border-radius:50%!important" width="64px" alt="lindexi" src="https://avatars.githubusercontent.com/u/16054566?s=64&v=4"></a>
<a href="https://github.com/danwalmsley" target="_blank"><img style="border-radius:50%!important" width="64px" alt="danwalmsley" src="https://avatars.githubusercontent.com/u/4672627?s=64&v=4"></a>
<a href="https://github.com/varKeytrap" target="_blank"><img style="border-radius:50%!important" width="64px" alt="varKeytrap" src="https://avatars.githubusercontent.com/u/17864005?s=64&v=4"></a>
<a href="https://github.com/xsnakes" target="_blank"><img style="border-radius:50%!important" width="64px" alt="xsnakes" src="https://avatars.githubusercontent.com/u/4363683?s=64&v=4"></a>
<a href="https://github.com/mmasdivins" target="_blank"><img style="border-radius:50%!important" width="64px" alt="mmasdivins" src="https://avatars.githubusercontent.com/u/63245359?s=64&v=4"></a>
<a href="https://github.com/GF-Huang" target="_blank"><img style="border-radius:50%!important" width="64px" alt="GF-Huang" src="https://avatars.githubusercontent.com/u/4510984?s=64v=4"></a>
<a href="https://github.com/cuiliang" target="_blank"><img style="border-radius:50%!important" width="64px" alt="cuiliang" src="https://avatars.githubusercontent.com/u/1972649?s=64&v=4"></a>
<a href="https://github.com/lwqwag" target="_blank"><img style="border-radius:50%!important" width="64px" alt="lwqwag" src="https://avatars.githubusercontent.com/u/29883542?s=64&v=4"></a>
<a href="https://github.com/Epacik" target="_blank"><img style="border-radius:50%!important" width="64px" alt="Epacik" src="https://avatars.githubusercontent.com/u/23077337?s=64&v=4"></a>
<a href="https://github.com/ChoKaPeek" target="_blank"><img style="border-radius:50%!important" width="64px" alt="ChoKaPeek" src="https://avatars.githubusercontent.com/u/16904907?s=64&v=4"></a>
<a href="https://github.com/shaosu" target="_blank"><img style="border-radius:50%!important" width="64px" alt="shaosu" src="https://avatars.githubusercontent.com/u/12237247?s=64&v=4"></a>
<a href="https://github.com/imba-tjd" target="_blank"><img style="border-radius:50%!important" width="64px" alt="imba-tjd" src="https://avatars.githubusercontent.com/u/24759802?s=64&v=4"></a>
<a href="https://github.com/jhm-ciberman" target="_blank"><img style="border-radius:50%!important" width="64px" alt="jhm-ciberman" src="https://avatars.githubusercontent.com/u/7988351?s=64&v=4"></a>
<a href="https://github.com/musashi-miyamoto" target="_blank"><img style="border-radius:50%!important" width="64px" alt="musashi-miyamoto" src="https://avatars.githubusercontent.com/u/44890163?s=64&v=4"></a>
## Backers
## 赞助者
<a href="https://github.com/bigorange1900" target="_blank"><img style="border-radius:50%!important" width="64px" alt="bigorange1900" src="https://avatars1.githubusercontent.com/u/49062011?s=64&v=4"></a>
<a href="https://github.com/14632791" target="_blank"><img style="border-radius:50%!important" width="64px" alt="14632791" src="https://avatars3.githubusercontent.com/u/27358331?s=64&v=4"></a>
<a href="https://github.com/IUpdatable" target="_blank"><img style="border-radius:50%!important" width="64px" alt="IUpdatable" src="https://avatars2.githubusercontent.com/u/51181716?s=64&v=4"></a>
<a href="https://github.com/maplewei" target="_blank"><img style="border-radius:50%!important" width="64px" alt="maplewei" src="https://avatars1.githubusercontent.com/u/13778095?s=64&v=4"></a>
<a href="https://github.com/sunshang-hl" target="_blank"><img style="border-radius:50%!important" width="64px" alt="sunshang-hl" src="https://avatars1.githubusercontent.com/u/34593206?s=64&v=4"></a>
<a href="https://github.com/yangkang326" target="_blank"><img style="border-radius:50%!important" width="64px" alt="yangkang326" src="https://avatars1.githubusercontent.com/u/51224259?s=64&v=4"></a>
<a href="https://github.com/zmrbak" target="_blank"><img style="border-radius:50%!important" width="64px" alt="zmrbak" src="https://avatars3.githubusercontent.com/u/7257543?s=64&v=4"></a>
<a href="https://github.com/AFei19911012" target="_blank"><img style="border-radius:50%!important" width="64px" alt="AFei19911012" src="https://avatars0.githubusercontent.com/u/31465314?s=64&v=4"></a>
<a href="https://github.com/wayne2006" target="_blank"><img style="border-radius:50%!important" width="64px" alt="wayne2006" src="https://avatars0.githubusercontent.com/u/21210915?s=64&v=4"></a>
<a href="https://github.com/towerDLH" target="_blank"><img style="border-radius:50%!important" width="64px" alt="towerDLH" src="https://avatars1.githubusercontent.com/u/53053537?s=64&v=4"></a>
<a href="https://github.com/BluceBosen" target="_blank"><img style="border-radius:50%!important" width="64px" alt="BluceBosen" src="https://avatars3.githubusercontent.com/u/24750822?s=64&v=4"></a>
<a href="https://github.com/MrZhangYuan" target="_blank"><img style="border-radius:50%!important" width="64px" alt="MrZhangYuan" src="https://avatars2.githubusercontent.com/u/16384123?s=64&v=4"></a>
<a href="https://github.com/YC946586" target="_blank"><img style="border-radius:50%!important" width="64px" alt="YC946586" src="https://avatars2.githubusercontent.com/u/49895722?s=64&v=4"></a>
<a href="https://github.com/wihalo" target="_blank"><img style="border-radius:50%!important" width="64px" alt="wihalo" src="https://avatars0.githubusercontent.com/u/26402999?s=64&v=4"></a>
<a href="https://github.com/startewho" target="_blank"><img style="border-radius:50%!important" width="64px" alt="startewho" src="https://avatars0.githubusercontent.com/u/898009?s=64&v=4"></a>
<a href="https://github.com/5653325" target="_blank"><img style="border-radius:50%!important" width="64px" alt="5653325" src="https://avatars1.githubusercontent.com/u/3361135?s=64&v=4"></a>
<a href="https://github.com/LostAsk" target="_blank"><img style="border-radius:50%!important" width="64px" alt="LostAsk" src="https://avatars0.githubusercontent.com/u/46678241?s=64&v=4"></a>
<a href="https://github.com/sanshiliuxiao" target="_blank"><img style="border-radius:50%!important" width="64px" alt="sanshiliuxiao" src="https://avatars3.githubusercontent.com/u/25658690?s=64&v=4"></a>
<a href="https://github.com/QJJMSK" target="_blank"><img style="border-radius:50%!important" width="64px" alt="QJJMSK" src="https://avatars2.githubusercontent.com/u/28100716?s=64&v=4"></a>
<a href="https://github.com/dspcjy" target="_blank"><img style="border-radius:50%!important" width="64px" alt="dspcjy" src="https://avatars3.githubusercontent.com/u/17764711?s=64&v=4"></a>
<a href="https://github.com/yaronzz" target="_blank"><img style="border-radius:50%!important" width="64px" alt="yaronzz" src="https://avatars0.githubusercontent.com/u/15530958?s=64&v=4"></a>
<a href="https://github.com/cuiliang" target="_blank"><img style="border-radius:50%!important" width="64px" alt="cuiliang" src="https://avatars2.githubusercontent.com/u/1972649?s=64&v=4"></a>
<a href="https://github.com/bigorange1900" target="_blank"><img style="border-radius:50%!important" width="64px" alt="bigorange1900" src="https://avatars.githubusercontent.com/u/49062011?s=64&v=4"></a>
<a href="https://github.com/14632791" target="_blank"><img style="border-radius:50%!important" width="64px" alt="14632791" src="https://avatars.githubusercontent.com/u/27358331?s=64&v=4"></a>
<a href="https://github.com/IUpdatable" target="_blank"><img style="border-radius:50%!important" width="64px" alt="IUpdatable" src="https://avatars.githubusercontent.com/u/51181716?s=64&v=4"></a>
<a href="https://github.com/maplewei" target="_blank"><img style="border-radius:50%!important" width="64px" alt="maplewei" src="https://avatars.githubusercontent.com/u/13778095?s=64&v=4"></a>
<a href="https://github.com/sunshang-hl" target="_blank"><img style="border-radius:50%!important" width="64px" alt="sunshang-hl" src="https://avatars.githubusercontent.com/u/34593206?s=64&v=4"></a>
<a href="https://github.com/yangkang326" target="_blank"><img style="border-radius:50%!important" width="64px" alt="yangkang326" src="https://avatars.githubusercontent.com/u/51224259?s=64&v=4"></a>
<a href="https://github.com/zmrbak" target="_blank"><img style="border-radius:50%!important" width="64px" alt="zmrbak" src="https://avatars.githubusercontent.com/u/7257543?s=64&v=4"></a>
<a href="https://github.com/AFei19911012" target="_blank"><img style="border-radius:50%!important" width="64px" alt="AFei19911012" src="https://avatars.githubusercontent.com/u/31465314?s=64&v=4"></a>
<a href="https://github.com/wayne2006" target="_blank"><img style="border-radius:50%!important" width="64px" alt="wayne2006" src="https://avatars.githubusercontent.com/u/21210915?s=64&v=4"></a>
<a href="https://github.com/towerDLH" target="_blank"><img style="border-radius:50%!important" width="64px" alt="towerDLH" src="https://avatars.githubusercontent.com/u/53053537?s=64&v=4"></a>
<a href="https://github.com/BluceBosen" target="_blank"><img style="border-radius:50%!important" width="64px" alt="BluceBosen" src="https://avatars.githubusercontent.com/u/24750822?s=64&v=4"></a>
<a href="https://github.com/MrZhangYuan" target="_blank"><img style="border-radius:50%!important" width="64px" alt="MrZhangYuan" src="https://avatars.githubusercontent.com/u/16384123?s=64&v=4"></a>
<a href="https://github.com/YC946586" target="_blank"><img style="border-radius:50%!important" width="64px" alt="YC946586" src="https://avatars.githubusercontent.com/u/49895722?s=64&v=4"></a>
<a href="https://github.com/wihalo" target="_blank"><img style="border-radius:50%!important" width="64px" alt="wihalo" src="https://avatars.githubusercontent.com/u/26402999?s=64&v=4"></a>
<a href="https://github.com/startewho" target="_blank"><img style="border-radius:50%!important" width="64px" alt="startewho" src="https://avatars.githubusercontent.com/u/898009?s=64&v=4"></a>
<a href="https://github.com/5653325" target="_blank"><img style="border-radius:50%!important" width="64px" alt="5653325" src="https://avatars.githubusercontent.com/u/3361135?s=64&v=4"></a>
<a href="https://github.com/LostAsk" target="_blank"><img style="border-radius:50%!important" width="64px" alt="LostAsk" src="https://avatars.githubusercontent.com/u/46678241?s=64&v=4"></a>
<a href="https://github.com/sanshiliuxiao" target="_blank"><img style="border-radius:50%!important" width="64px" alt="sanshiliuxiao" src="https://avatars.githubusercontent.com/u/25658690?s=64&v=4"></a>
<a href="https://github.com/QJJMSK" target="_blank"><img style="border-radius:50%!important" width="64px" alt="QJJMSK" src="https://avatars.githubusercontent.com/u/28100716?s=64&v=4"></a>
<a href="https://github.com/dspcjy" target="_blank"><img style="border-radius:50%!important" width="64px" alt="dspcjy" src="https://avatars.githubusercontent.com/u/17764711?s=64&v=4"></a>
<a href="https://github.com/yaronzz" target="_blank"><img style="border-radius:50%!important" width="64px" alt="yaronzz" src="https://avatars.githubusercontent.com/u/15530958?s=64&v=4"></a>
<a href="https://github.com/cuiliang" target="_blank"><img style="border-radius:50%!important" width="64px" alt="cuiliang" src="https://avatars.githubusercontent.com/u/1972649?s=64&v=4"></a>
<a href="https://github.com/GenmTim" target="_blank"><img style="border-radius:50%!important" width="64px" alt="GenmTim" src="https://avatars.githubusercontent.com/u/69684108?s=64&v=4"></a>
<a href="https://github.com/ms1094392787" target="_blank"><img style="border-radius:50%!important" width="64px" alt="ms1094392787" src="https://avatars.githubusercontent.com/u/49998334?s=64&v=4"></a>
<a href="https://gitee.com/ZJHome" target="_blank"><img style="border-radius:50%!important" width="64px" alt="ZJHome" src="https://tvax2.sinaimg.cn/crop.0.0.1080.1080.180/69543af8ly8gf4iat3amdj20u00u0whg.jpg"></a>
<a href="https://github.com/JeremyWu917" target="_blank"><img style="border-radius:50%!important" width="64px" alt="JeremyWu917" src="https://avatars.githubusercontent.com/u/54832272?s=64&v=4"></a>
<a href="https://github.com/cagedh1" target="_blank"><img style="border-radius:50%!important" width="64px" alt="cagedh1" src="https://avatars.githubusercontent.com/u/48586139?s=64&v=4"></a>
<a href="https://github.com/Yangf85" target="_blank"><img style="border-radius:50%!important" width="64px" alt="Yangf85" src="https://avatars.githubusercontent.com/u/42733580?s=64&v=4"></a>
<a href="https://github.com/hellozy320" target="_blank"><img style="border-radius:50%!important" width="64px" alt="hellozy320" src="https://avatars.githubusercontent.com/u/68945043?s=64&v=4"></a>
<a href="https://github.com/inows" target="_blank"><img style="border-radius:50%!important" width="64px" alt="inows" src="https://avatars.githubusercontent.com/u/15324558?s=64&v=4"></a>
<a href="https://github.com/oo-simbo" target="_blank"><img style="border-radius:50%!important" width="64px" alt="oo-simbo" src="https://avatars.githubusercontent.com/u/49231532?s=64&v=4"></a>
<a href="https://github.com/775253959" target="_blank"><img style="border-radius:50%!important" width="64px" alt="775253959" src="https://avatars.githubusercontent.com/u/24452103?s=64&v=4"></a>
<a href="https://github.com/IanXxu" target="_blank"><img style="border-radius:50%!important" width="64px" alt="IanXxu" src="https://avatars.githubusercontent.com/u/19760451?s=64&v=4"></a>
<a href="https://github.com/NightwishMeng" target="_blank"><img style="border-radius:50%!important" width="64px" alt="NightwishMeng" src="https://avatars.githubusercontent.com/u/32695316?s64&v=4"></a>
<a href="https://github.com/tonghudan" target="_blank"><img style="border-radius:50%!important" width="64px" alt="tonghudan" src="https://avatars.githubusercontent.com/u/14705603?s=64&v=4"></a>
<a href="https://github.com/Removable" target="_blank"><img style="border-radius:50%!important" width="64px" alt="Removable" src="https://avatars.githubusercontent.com/u/7271713?s=64&v=4"></a>
<a href="https://github.com/nicecodeclub" target="_blank"><img style="border-radius:50%!important" width="64px" alt="nicecodeclub" src="https://avatars.githubusercontent.com/u/12929071?s=64&v=4"></a>
<a href="https://github.com/Jajison" target="_blank"><img style="border-radius:50%!important" width="64px" alt="Jajison" src="https://avatars.githubusercontent.com/u/60476418?s=64&v=4"></a>
<a href="https://github.com/xyghy13" target="_blank"><img style="border-radius:50%!important" width="64px" alt="xyghy13" src="https://avatars.githubusercontent.com/u/27751725?s=64&v=4"></a>
<a href="https://github.com/icarousfff" target="_blank"><img style="border-radius:50%!important" width="64px" alt="icarousfff" src="https://avatars.githubusercontent.com/u/49859230?s=64&v=4"></a>
<a href="https://github.com/qiang9420d" target="_blank"><img style="border-radius:50%!important" width="64px" alt="qiang9420d" src="https://avatars.githubusercontent.com/u/22925262?s=64&v=4"></a>
<a href="https://github.com/zhongwcool" target="_blank"><img style="border-radius:50%!important" width="64px" alt="zhongwcool" src="https://avatars.githubusercontent.com/u/5747392?s=64&v=4"></a>
<a href="https://github.com/HenJigg" target="_blank"><img style="border-radius:50%!important" width="64px" alt="HenJigg" src="https://avatars.githubusercontent.com/u/42528522?s=64&v=4"></a>
<a href="https://github.com/MysticABC" target="_blank"><img style="border-radius:50%!important" width="64px" alt="MysticABC" src="https://avatars.githubusercontent.com/u/53632904?s=64&v=4"></a>
## Special thanks to
## 鸣谢
[![Visual Studio Community 2019](https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/vs2019_logo.png)](https://visualstudio.microsoft.com/free-developer-offers/)
[![JetBrains](https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/resharper_logo.png)](https://www.jetbrains.com/?from=HandyControl)
[![Cake](https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/cake_logo.png)](https://cakebuild.net/)
[![Gitter](https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/gitter_logo.png)](https://gitter.im/)
## Usage
## 使用HandyControl的项目
Step 1: Add a reference to HandyControl or search for HandyControl on the nuget;
<a href="https://getquicker.net" target="_blank"><img width="70px" alt="quicker" src="https://files.getquicker.net/_sitefiles/quicker_round_128.png"></a>
<a href="https://www.phpenv.cn" target="_blank"><img width="70px" alt="phpenv" src="https://www.phpenv.cn/usr/themes/phpenv/img/logo.png"></a>
<a href="https://github.com/zsh2401/AutumnBox" target="_blank"><img width="70px" alt="AutumnBox" src="https://raw.githubusercontent.com/zsh2401/AutumnBox/master/src/AutumnBox.GUI/Resources/Icons/icon.ico"></a>
如果你的项目没有被列出,请告知我们! 😀
## 用法
Step 1: 添加 HandyControl 引用,或在 nuget 上搜索 HandyControl;
```Install-Package HandyControl```
Step 2: Add code in App.xaml as follows:
Step 2: 在 App.xaml 中添加如下代码:
```XML
<Application.Resources>
<ResourceDictionary>
@@ -109,27 +172,39 @@ Step 2: Add code in App.xaml as follows:
</Application.Resources>
```
Step 3: Add NameSpace:
Step 3: 添加命名空间:
`xmlns:hc="https://handyorg.github.io/handycontrol"`
Step 4: Enjoy coding
Step 4: 开始编码
## VSIX packages for Visual Studio
## VS插件
| [VS2019](https://marketplace.visualstudio.com/items?itemName=HandyOrg.handycontrolforvs2019) |
| [VS2019](https://marketplace.visualstudio.com/items?itemName=HandyOrg.HandyControl) |
| ------------- |
## Stargazers over time
## Star趋势
[![Stargazers over time](https://starchart.cc/HandyOrg/HandyControl.svg)](https://starchart.cc/HandyOrg/HandyControl)
## Overview
## 概览
![Overview](https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/Overview.png)
![Overview-dark](https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/Overview-dark.png)
## Latest examples
## 最新示例
### Watermark
![Watermark](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/Watermark.png)
### AutoCompleteTextBox
![AutoCompleteTextBox](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/AutoCompleteTextBox.gif)
### ElementGroup
![ElementGroup](https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/ElementGroup.png)
### UniformSpacingPanel
@@ -139,6 +214,8 @@ Step 4: Enjoy coding
![FlexPanel](https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/FlexPanel.gif)
## 历史发布
### CheckComboBox
![CheckComboBox](https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/CheckComboBox.png)
@@ -151,8 +228,6 @@ Step 4: Enjoy coding
![PropertyGrid](https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/PropertyGrid.png)
## History publication
### Screenshot
![Screenshot](https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/Screenshot.png)
@@ -199,7 +274,7 @@ Step 4: Enjoy coding
### SplitButton
![SplitButton](https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/SplitButton.png)
![SplitButton](https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/SplitButton.gif)
### FloatingBlock
@@ -215,7 +290,7 @@ Step 4: Enjoy coding
### ImageBlock
![ImageBlock](https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/ImageBlock.gif)
![ImageBlock](https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/ImageBlock.gif)
![ImageBlock](https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/ImageBlock.png)
@@ -253,7 +328,7 @@ Step 4: Enjoy coding
### Badge
![Badge](https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/Badge.png)
![Badge](https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/Badge.gif)
### Gravatar
@@ -273,11 +348,11 @@ Step 4: Enjoy coding
### Transfer
![Transfer](https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/Transfer.png)
![Transfer](https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/Transfer.gif)
### ProgressButton
![ProgressButton](https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/ProgressButton.png)
![ProgressButton](https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/ProgressButton.gif)
### CoverFlow
@@ -297,11 +372,11 @@ Step 4: Enjoy coding
### Rate
![Rate](https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/Rate.png)
![Rate](https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/Rate.gif)
### BlurWindow
![BlurWindow](https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/BlurWindow.png)
![BlurWindow](https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/BlurWindow.gif)
### FlipClock
@@ -333,7 +408,7 @@ Step 4: Enjoy coding
### CircleProgressBar
![CircleProgressBar](https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/CircleProgressBar.png)
![CircleProgressBar](https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/CircleProgressBar.gif)
### ButtonStyle
@@ -435,7 +510,7 @@ Step 4: Enjoy coding
### StepBar
![StepBar](https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/StepBar.png)
![StepBar](https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/StepBar.gif)
### GifImage
@@ -447,11 +522,11 @@ Step 4: Enjoy coding
### Calendar
![Calendar](https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/Calendar.jpg)
![Calendar](https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/Calendar.gif)
### Clock
![Clock](https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/Clock.jpg)
![Clock](https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/Clock.png)
### CalendarWithClock
@@ -459,7 +534,7 @@ Step 4: Enjoy coding
### TextBlock
![TextBlock](https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/TextBlock.jpg)
![TextBlock](https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/TextBlock.png)
### RichTextBoxStyle
@@ -467,11 +542,11 @@ Step 4: Enjoy coding
### TextBox
![TextBox](https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/TextBox.jpg)
![TextBox](https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/TextBox.png)
### ComboBox
![ComboBox](https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/ComboBox.jpg)
![ComboBox](https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/ComboBox.png)
### NumericUpDown
@@ -483,27 +558,27 @@ Step 4: Enjoy coding
### PasswordBox
![PasswordBox](https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/PasswordBox.jpg)
![PasswordBox](https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/PasswordBox.png)
### DataPicker
### DatePicker
![DataPicker](https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/DataPicker.jpg)
![DatePicker](https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/DatePicker.png)
### TimePicker
![TimePicker](https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/TimePicker.jpg)
![TimePicker](https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/TimePicker.gif)
### DateTimePicker
![DateTimePicker](https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/DateTimePicker.png)
![DateTimePicker](https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/DateTimePicker.gif)
### ScrollViewer
![ScrollViewer](https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/ScrollViewer.png)
![ScrollViewer](https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/ScrollViewer.gif)
### CirclePanel
![CirclePanel](https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/CirclePanel.jpg)
![CirclePanel](https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/CirclePanel.png)
### TransitioningContentControl
@@ -516,7 +591,3 @@ Step 4: Enjoy coding
### Brush
![Brush](https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/Brush.png)
## Switching configuration
![Switching configuration](https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/SwitchConfig.png)
+158 -93
View File
@@ -1,19 +1,42 @@
[中文](https://github.com/HandyOrg/HandyControl/blob/master/README-cn.md) - [English](https://github.com/HandyOrg/HandyControl/blob/master/README.md)
## Blogroll
![logo](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/icon.png)
[SimpleFactoryGenerator](https://github.com/DingpingZhang/SimpleFactoryGenerator) - A simple factory source generator that enables the pattern to not violate the open-close principle.
![dotnet-version](https://img.shields.io/badge/.net-%3E%3D4.0-blue.svg) ![csharp-version](https://img.shields.io/badge/C%23-8.0-blue.svg) ![IDE-version](https://img.shields.io/badge/IDE-vs2019-blue.svg) [![nuget-version](https://img.shields.io/nuget/v/HandyControl.svg)](https://www.nuget.org/packages/HandyControl) ![Github-build-status](https://github.com/HandyOrg/HandyControl/workflows/build/badge.svg) [![Join the chat at https://gitter.im/HandyControl/Lobby](https://badges.gitter.im/HandyControl/Lobby.svg)](https://gitter.im/HandyControl/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![wiki](https://img.shields.io/badge/wiki-Complete-brightgreen.svg)](https://github.com/ghost1372/HandyControl/wiki) [![Nuget](https://img.shields.io/nuget/dt/handycontrol)](https://www.nuget.org/packages/HandyControl)
[WpfExtensions](https://github.com/DingpingZhang/WpfExtensions) - Some syntactic sugar for Wpf development.
# Welcome to HandyControl
<p align="center">
<img align="center" src="https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/Cover.png">
</p>
<p align="center">
<a href="https://github.com/HandyOrg/HandyControl/blob/master/README-cn.md">中文</a>
❤
<a href="https://github.com/HandyOrg/HandyControl/blob/master/README.md">English</a>
</p>
<p align="center">
<img alt="dotnet-version" src="https://img.shields.io/badge/.net-%3E%3D4.0-blue.svg"></img>
<img alt="csharp-version" src="https://img.shields.io/badge/C%23-latest-blue.svg"></img>
<img alt="IDE-version" src="https://img.shields.io/badge/IDE-vs2022-blue.svg"></img>
<a href="https://www.nuget.org/packages/HandyControl">
<img alt="nuget-version" src="https://img.shields.io/nuget/v/HandyControl.svg"></img>
</a>
<a href="https://www.myget.org/feed/handycontrol/package/nuget/HandyControl">
<img alt="myget-version" src="https://img.shields.io/myget/handycontrol/v/handycontrol?color=orange&label=myget"></img>
</a>
<a href="https://github.com/HandyOrg/HandyControl/actions?query=workflow%3Abuild">
<img alt="Github-build-status" src="https://github.com/HandyOrg/HandyControl/workflows/build/badge.svg"></img>
</a>
<a href="https://www.nuget.org/packages/HandyControl">
<img alt="Nuget" src="https://img.shields.io/nuget/dt/handycontrol"></img>
</a>
</p>
## 面向中国
### 加入讨论
### 技术交流
| | 西江月群 | 定风波群 | 广寒秋群 |
|-|:-:|:-:|:-:|
| 群号码 | [![qq-group](https://img.shields.io/badge/qq-714704041-red.svg)](//shang.qq.com/wpa/qunwpa?idkey=a571e5553c9d41e49c4f22f3a8b2865451497a795ff281fedf3285def247efc1) | [![qq-group](https://img.shields.io/badge/qq-858784803-red.svg)](//shang.qq.com/wpa/qunwpa?idkey=5c18622a0f6ee07a6f33afa8cdb85b1f72ea50e878271dfcec919c76b55afee7) | 微信群 |
| 二维码 | ![qq-group](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/qq_group_1.png) | ![qq-group](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/qq_group_2.png) | ![wechat-group](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/wechat_group.png) |
[https://join.slack.com/t/handycontrol/shared_invite/zt-sw29prqd-okFmRlmETdtWhnF7C3foxA](https://join.slack.com/t/handycontrol/shared_invite/zt-sw29prqd-okFmRlmETdtWhnF7C3foxA)
### 码云
@@ -24,76 +47,110 @@
[https://handyorg.github.io/handycontrol/](https://handyorg.github.io/handycontrol/)
### 赞助
如果您觉得HandyControl还不错,并且刚好有些闲钱,那么可以选择以下两种方式来赞助(记得入群联系我们呀~~):
* [以HandyControl的名义为慈善事业做贡献](http://www.chinacharityfederation.org/ConfirmDonation/0.html?zhijie=3)
* [以HandyControl的名义为慈善事业做贡献(请联系我们上赞助墙)](http://www.chinacharityfederation.org/ConfirmDonation/0.html?zhijie=3)
* 为我们购买防脱洗发水
![qrcode](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/qrcode.png)
* 为我们购买防脱洗发水 (支付宝扫码)
![qrcode](https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/qrcode.png)
## Contributors
<a href="https://github.com/ghost1372" target="_blank"><img style="border-radius:50%!important" width="64px" alt="ghost1372" src="https://avatars0.githubusercontent.com/u/9213496?s=64&v=4"></a>
<a href="https://github.com/DingpingZhang" target="_blank"><img style="border-radius:50%!important" width="64px" alt="DingpingZhang" src="https://avatars0.githubusercontent.com/u/8541016?s=64&v=4"></a>
<a href="https://github.com/M0n7y5" target="_blank"><img style="border-radius:50%!important" width="64px" alt="M0n7y5" src="https://avatars0.githubusercontent.com/u/17201053?s=64&v=4"></a>
<a href="https://github.com/guanguanchuangyu" target="_blank"><img style="border-radius:50%!important" width="64px" alt="guanguanchuangyu" src="https://avatars1.githubusercontent.com/u/25916858?s=64&v=4"></a>
<a href="https://github.com/yanchao891012" target="_blank"><img style="border-radius:50%!important" width="64px" alt="yanchao891012" src="https://avatars0.githubusercontent.com/u/16846702?s=64&v=4"></a>
<a href="https://github.com/noctwolf" target="_blank"><img style="border-radius:50%!important" width="64px" alt="noctwolf" src="https://avatars3.githubusercontent.com/u/21022467?s=64&v=4"></a>
<a href="https://github.com/xianyun666" target="_blank"><img style="border-radius:50%!important" width="64px" alt="xianyun666" src="https://avatars1.githubusercontent.com/u/22339210?s=64&v=4"></a>
<a href="https://github.com/afunc233" target="_blank"><img style="border-radius:50%!important" width="64px" alt="afunc233" src="https://avatars1.githubusercontent.com/u/19919631?s=64&v=4"></a>
<a href="https://github.com/DinoChan" target="_blank"><img style="border-radius:50%!important" width="64px" alt="DinoChan" src="https://avatars1.githubusercontent.com/u/6076257?s=64&v=4"></a>
<a href="https://github.com/MrZhangYuan" target="_blank"><img style="border-radius:50%!important" width="64px" alt="MrZhangYuan" src="https://avatars2.githubusercontent.com/u/16384123?s=64&v=4"></a>
<a href="https://github.com/JinhuaChen-OMEC" target="_blank"><img style="border-radius:50%!important" width="64px" alt="JinhuaChen-OMEC" src="https://avatars0.githubusercontent.com/u/47024703?s=64&v=4"></a>
<a href="https://github.com/seedtyx" target="_blank"><img style="border-radius:50%!important" width="64px" alt="seedtyx" src="https://avatars2.githubusercontent.com/u/5851975?s=64&v=4"></a>
<a href="https://github.com/KleinPan" target="_blank"><img style="border-radius:50%!important" width="64px" alt="KleinPan" src="https://avatars2.githubusercontent.com/u/34428802?s=64&v=4"></a>
<a href="https://github.com/yxhq" target="_blank"><img style="border-radius:50%!important" width="64px" alt="yxhq" src="https://avatars3.githubusercontent.com/u/10378954?s=64&v=4"></a>
<a href="https://github.com/AiHaibara" target="_blank"><img style="border-radius:50%!important" width="64px" alt="AiHaibara" src="https://avatars3.githubusercontent.com/u/5195234?s=64&v=4"></a>
<a href="https://github.com/walterlv" target="_blank"><img style="border-radius:50%!important" width="64px" alt="walterlv" src="https://avatars3.githubusercontent.com/u/9959623?s=64&v=4"></a>
<a href="https://github.com/Luoyingliang" target="_blank"><img style="border-radius:50%!important" width="64px" alt="Luoyingliang" src="https://avatars2.githubusercontent.com/u/29297262?s=64&v=4"></a>
<a href="https://github.com/lindexi" target="_blank"><img style="border-radius:50%!important" width="64px" alt="lindexi" src="https://avatars3.githubusercontent.com/u/16054566?s=64&v=4"></a>
<a href="https://github.com/danwalmsley" target="_blank"><img style="border-radius:50%!important" width="64px" alt="danwalmsley" src="https://avatars1.githubusercontent.com/u/4672627?s=64&v=4"></a>
<a href="https://github.com/varKeytrap" target="_blank"><img style="border-radius:50%!important" width="64px" alt="varKeytrap" src="https://avatars0.githubusercontent.com/u/17864005?s=64&v=4"></a>
<a href="https://github.com/xsnakes" target="_blank"><img style="border-radius:50%!important" width="64px" alt="xsnakes" src="https://avatars1.githubusercontent.com/u/4363683?s=64&v=4"></a>
<a href="https://github.com/mmasdivins" target="_blank"><img style="border-radius:50%!important" width="64px" alt="mmasdivins" src="https://avatars1.githubusercontent.com/u/63245359?s=64&v=4"></a>
<a href="https://github.com/GF-Huang" target="_blank"><img style="border-radius:50%!important" width="64px" alt="GF-Huang" src="https://avatars1.githubusercontent.com/u/4510984?s=64v=4"></a>
<a href="https://github.com/cuiliang" target="_blank"><img style="border-radius:50%!important" width="64px" alt="cuiliang" src="https://avatars2.githubusercontent.com/u/1972649?s=64&v=4"></a>
<a href="https://github.com/lwqwag" target="_blank"><img style="border-radius:50%!important" width="64px" alt="lwqwag" src="https://avatars3.githubusercontent.com/u/29883542?s=64&v=4"></a>
<a href="https://github.com/ghost1372" target="_blank"><img style="border-radius:50%!important" width="64px" alt="ghost1372" src="https://avatars.githubusercontent.com/u/9213496?s=64&v=4"></a>
<a href="https://github.com/DingpingZhang" target="_blank"><img style="border-radius:50%!important" width="64px" alt="DingpingZhang" src="https://avatars.githubusercontent.com/u/8541016?s=64&v=4"></a>
<a href="https://github.com/M0n7y5" target="_blank"><img style="border-radius:50%!important" width="64px" alt="M0n7y5" src="https://avatars.githubusercontent.com/u/17201053?s=64&v=4"></a>
<a href="https://github.com/guanguanchuangyu" target="_blank"><img style="border-radius:50%!important" width="64px" alt="guanguanchuangyu" src="https://avatars.githubusercontent.com/u/25916858?s=64&v=4"></a>
<a href="https://github.com/yanchao891012" target="_blank"><img style="border-radius:50%!important" width="64px" alt="yanchao891012" src="https://avatars.githubusercontent.com/u/16846702?s=64&v=4"></a>
<a href="https://github.com/noctwolf" target="_blank"><img style="border-radius:50%!important" width="64px" alt="noctwolf" src="https://avatars.githubusercontent.com/u/21022467?s=64&v=4"></a>
<a href="https://github.com/xianyun666" target="_blank"><img style="border-radius:50%!important" width="64px" alt="xianyun666" src="https://avatars.githubusercontent.com/u/22339210?s=64&v=4"></a>
<a href="https://github.com/afunc233" target="_blank"><img style="border-radius:50%!important" width="64px" alt="afunc233" src="https://avatars.githubusercontent.com/u/19919631?s=64&v=4"></a>
<a href="https://github.com/DinoChan" target="_blank"><img style="border-radius:50%!important" width="64px" alt="DinoChan" src="https://avatars.githubusercontent.com/u/6076257?s=64&v=4"></a>
<a href="https://github.com/MrZhangYuan" target="_blank"><img style="border-radius:50%!important" width="64px" alt="MrZhangYuan" src="https://avatars.githubusercontent.com/u/16384123?s=64&v=4"></a>
<a href="https://github.com/JinhuaChen-OMEC" target="_blank"><img style="border-radius:50%!important" width="64px" alt="JinhuaChen-OMEC" src="https://avatars.githubusercontent.com/u/47024703?s=64&v=4"></a>
<a href="https://github.com/seedtyx" target="_blank"><img style="border-radius:50%!important" width="64px" alt="seedtyx" src="https://avatars.githubusercontent.com/u/5851975?s=64&v=4"></a>
<a href="https://github.com/KleinPan" target="_blank"><img style="border-radius:50%!important" width="64px" alt="KleinPan" src="https://avatars.githubusercontent.com/u/34428802?s=64&v=4"></a>
<a href="https://github.com/yxhq" target="_blank"><img style="border-radius:50%!important" width="64px" alt="yxhq" src="https://avatars.githubusercontent.com/u/10378954?s=64&v=4"></a>
<a href="https://github.com/AiHaibara" target="_blank"><img style="border-radius:50%!important" width="64px" alt="AiHaibara" src="https://avatars.githubusercontent.com/u/5195234?s=64&v=4"></a>
<a href="https://github.com/walterlv" target="_blank"><img style="border-radius:50%!important" width="64px" alt="walterlv" src="https://avatars.githubusercontent.com/u/9959623?s=64&v=4"></a>
<a href="https://github.com/Luoyingliang" target="_blank"><img style="border-radius:50%!important" width="64px" alt="Luoyingliang" src="https://avatars.githubusercontent.com/u/29297262?s=64&v=4"></a>
<a href="https://github.com/lindexi" target="_blank"><img style="border-radius:50%!important" width="64px" alt="lindexi" src="https://avatars.githubusercontent.com/u/16054566?s=64&v=4"></a>
<a href="https://github.com/danwalmsley" target="_blank"><img style="border-radius:50%!important" width="64px" alt="danwalmsley" src="https://avatars.githubusercontent.com/u/4672627?s=64&v=4"></a>
<a href="https://github.com/varKeytrap" target="_blank"><img style="border-radius:50%!important" width="64px" alt="varKeytrap" src="https://avatars.githubusercontent.com/u/17864005?s=64&v=4"></a>
<a href="https://github.com/xsnakes" target="_blank"><img style="border-radius:50%!important" width="64px" alt="xsnakes" src="https://avatars.githubusercontent.com/u/4363683?s=64&v=4"></a>
<a href="https://github.com/mmasdivins" target="_blank"><img style="border-radius:50%!important" width="64px" alt="mmasdivins" src="https://avatars.githubusercontent.com/u/63245359?s=64&v=4"></a>
<a href="https://github.com/GF-Huang" target="_blank"><img style="border-radius:50%!important" width="64px" alt="GF-Huang" src="https://avatars.githubusercontent.com/u/4510984?s=64v=4"></a>
<a href="https://github.com/cuiliang" target="_blank"><img style="border-radius:50%!important" width="64px" alt="cuiliang" src="https://avatars.githubusercontent.com/u/1972649?s=64&v=4"></a>
<a href="https://github.com/lwqwag" target="_blank"><img style="border-radius:50%!important" width="64px" alt="lwqwag" src="https://avatars.githubusercontent.com/u/29883542?s=64&v=4"></a>
<a href="https://github.com/Epacik" target="_blank"><img style="border-radius:50%!important" width="64px" alt="Epacik" src="https://avatars.githubusercontent.com/u/23077337?s=64&v=4"></a>
<a href="https://github.com/ChoKaPeek" target="_blank"><img style="border-radius:50%!important" width="64px" alt="ChoKaPeek" src="https://avatars.githubusercontent.com/u/16904907?s=64&v=4"></a>
<a href="https://github.com/shaosu" target="_blank"><img style="border-radius:50%!important" width="64px" alt="shaosu" src="https://avatars.githubusercontent.com/u/12237247?s=64&v=4"></a>
<a href="https://github.com/imba-tjd" target="_blank"><img style="border-radius:50%!important" width="64px" alt="imba-tjd" src="https://avatars.githubusercontent.com/u/24759802?s=64&v=4"></a>
<a href="https://github.com/jhm-ciberman" target="_blank"><img style="border-radius:50%!important" width="64px" alt="jhm-ciberman" src="https://avatars.githubusercontent.com/u/7988351?s=64&v=4"></a>
<a href="https://github.com/musashi-miyamoto" target="_blank"><img style="border-radius:50%!important" width="64px" alt="musashi-miyamoto" src="https://avatars.githubusercontent.com/u/44890163?s=64&v=4"></a>
## Backers
<a href="https://github.com/bigorange1900" target="_blank"><img style="border-radius:50%!important" width="64px" alt="bigorange1900" src="https://avatars1.githubusercontent.com/u/49062011?s=64&v=4"></a>
<a href="https://github.com/14632791" target="_blank"><img style="border-radius:50%!important" width="64px" alt="14632791" src="https://avatars3.githubusercontent.com/u/27358331?s=64&v=4"></a>
<a href="https://github.com/IUpdatable" target="_blank"><img style="border-radius:50%!important" width="64px" alt="IUpdatable" src="https://avatars2.githubusercontent.com/u/51181716?s=64&v=4"></a>
<a href="https://github.com/maplewei" target="_blank"><img style="border-radius:50%!important" width="64px" alt="maplewei" src="https://avatars1.githubusercontent.com/u/13778095?s=64&v=4"></a>
<a href="https://github.com/sunshang-hl" target="_blank"><img style="border-radius:50%!important" width="64px" alt="sunshang-hl" src="https://avatars1.githubusercontent.com/u/34593206?s=64&v=4"></a>
<a href="https://github.com/yangkang326" target="_blank"><img style="border-radius:50%!important" width="64px" alt="yangkang326" src="https://avatars1.githubusercontent.com/u/51224259?s=64&v=4"></a>
<a href="https://github.com/zmrbak" target="_blank"><img style="border-radius:50%!important" width="64px" alt="zmrbak" src="https://avatars3.githubusercontent.com/u/7257543?s=64&v=4"></a>
<a href="https://github.com/AFei19911012" target="_blank"><img style="border-radius:50%!important" width="64px" alt="AFei19911012" src="https://avatars0.githubusercontent.com/u/31465314?s=64&v=4"></a>
<a href="https://github.com/wayne2006" target="_blank"><img style="border-radius:50%!important" width="64px" alt="wayne2006" src="https://avatars0.githubusercontent.com/u/21210915?s=64&v=4"></a>
<a href="https://github.com/towerDLH" target="_blank"><img style="border-radius:50%!important" width="64px" alt="towerDLH" src="https://avatars1.githubusercontent.com/u/53053537?s=64&v=4"></a>
<a href="https://github.com/BluceBosen" target="_blank"><img style="border-radius:50%!important" width="64px" alt="BluceBosen" src="https://avatars3.githubusercontent.com/u/24750822?s=64&v=4"></a>
<a href="https://github.com/MrZhangYuan" target="_blank"><img style="border-radius:50%!important" width="64px" alt="MrZhangYuan" src="https://avatars2.githubusercontent.com/u/16384123?s=64&v=4"></a>
<a href="https://github.com/YC946586" target="_blank"><img style="border-radius:50%!important" width="64px" alt="YC946586" src="https://avatars2.githubusercontent.com/u/49895722?s=64&v=4"></a>
<a href="https://github.com/wihalo" target="_blank"><img style="border-radius:50%!important" width="64px" alt="wihalo" src="https://avatars0.githubusercontent.com/u/26402999?s=64&v=4"></a>
<a href="https://github.com/startewho" target="_blank"><img style="border-radius:50%!important" width="64px" alt="startewho" src="https://avatars0.githubusercontent.com/u/898009?s=64&v=4"></a>
<a href="https://github.com/5653325" target="_blank"><img style="border-radius:50%!important" width="64px" alt="5653325" src="https://avatars1.githubusercontent.com/u/3361135?s=64&v=4"></a>
<a href="https://github.com/LostAsk" target="_blank"><img style="border-radius:50%!important" width="64px" alt="LostAsk" src="https://avatars0.githubusercontent.com/u/46678241?s=64&v=4"></a>
<a href="https://github.com/sanshiliuxiao" target="_blank"><img style="border-radius:50%!important" width="64px" alt="sanshiliuxiao" src="https://avatars3.githubusercontent.com/u/25658690?s=64&v=4"></a>
<a href="https://github.com/QJJMSK" target="_blank"><img style="border-radius:50%!important" width="64px" alt="QJJMSK" src="https://avatars2.githubusercontent.com/u/28100716?s=64&v=4"></a>
<a href="https://github.com/dspcjy" target="_blank"><img style="border-radius:50%!important" width="64px" alt="dspcjy" src="https://avatars3.githubusercontent.com/u/17764711?s=64&v=4"></a>
<a href="https://github.com/yaronzz" target="_blank"><img style="border-radius:50%!important" width="64px" alt="yaronzz" src="https://avatars0.githubusercontent.com/u/15530958?s=64&v=4"></a>
<a href="https://github.com/cuiliang" target="_blank"><img style="border-radius:50%!important" width="64px" alt="cuiliang" src="https://avatars2.githubusercontent.com/u/1972649?s=64&v=4"></a>
<a href="https://github.com/bigorange1900" target="_blank"><img style="border-radius:50%!important" width="64px" alt="bigorange1900" src="https://avatars.githubusercontent.com/u/49062011?s=64&v=4"></a>
<a href="https://github.com/14632791" target="_blank"><img style="border-radius:50%!important" width="64px" alt="14632791" src="https://avatars.githubusercontent.com/u/27358331?s=64&v=4"></a>
<a href="https://github.com/IUpdatable" target="_blank"><img style="border-radius:50%!important" width="64px" alt="IUpdatable" src="https://avatars.githubusercontent.com/u/51181716?s=64&v=4"></a>
<a href="https://github.com/maplewei" target="_blank"><img style="border-radius:50%!important" width="64px" alt="maplewei" src="https://avatars.githubusercontent.com/u/13778095?s=64&v=4"></a>
<a href="https://github.com/sunshang-hl" target="_blank"><img style="border-radius:50%!important" width="64px" alt="sunshang-hl" src="https://avatars.githubusercontent.com/u/34593206?s=64&v=4"></a>
<a href="https://github.com/yangkang326" target="_blank"><img style="border-radius:50%!important" width="64px" alt="yangkang326" src="https://avatars.githubusercontent.com/u/51224259?s=64&v=4"></a>
<a href="https://github.com/zmrbak" target="_blank"><img style="border-radius:50%!important" width="64px" alt="zmrbak" src="https://avatars.githubusercontent.com/u/7257543?s=64&v=4"></a>
<a href="https://github.com/AFei19911012" target="_blank"><img style="border-radius:50%!important" width="64px" alt="AFei19911012" src="https://avatars.githubusercontent.com/u/31465314?s=64&v=4"></a>
<a href="https://github.com/wayne2006" target="_blank"><img style="border-radius:50%!important" width="64px" alt="wayne2006" src="https://avatars.githubusercontent.com/u/21210915?s=64&v=4"></a>
<a href="https://github.com/towerDLH" target="_blank"><img style="border-radius:50%!important" width="64px" alt="towerDLH" src="https://avatars.githubusercontent.com/u/53053537?s=64&v=4"></a>
<a href="https://github.com/BluceBosen" target="_blank"><img style="border-radius:50%!important" width="64px" alt="BluceBosen" src="https://avatars.githubusercontent.com/u/24750822?s=64&v=4"></a>
<a href="https://github.com/MrZhangYuan" target="_blank"><img style="border-radius:50%!important" width="64px" alt="MrZhangYuan" src="https://avatars.githubusercontent.com/u/16384123?s=64&v=4"></a>
<a href="https://github.com/YC946586" target="_blank"><img style="border-radius:50%!important" width="64px" alt="YC946586" src="https://avatars.githubusercontent.com/u/49895722?s=64&v=4"></a>
<a href="https://github.com/wihalo" target="_blank"><img style="border-radius:50%!important" width="64px" alt="wihalo" src="https://avatars.githubusercontent.com/u/26402999?s=64&v=4"></a>
<a href="https://github.com/startewho" target="_blank"><img style="border-radius:50%!important" width="64px" alt="startewho" src="https://avatars.githubusercontent.com/u/898009?s=64&v=4"></a>
<a href="https://github.com/5653325" target="_blank"><img style="border-radius:50%!important" width="64px" alt="5653325" src="https://avatars.githubusercontent.com/u/3361135?s=64&v=4"></a>
<a href="https://github.com/LostAsk" target="_blank"><img style="border-radius:50%!important" width="64px" alt="LostAsk" src="https://avatars.githubusercontent.com/u/46678241?s=64&v=4"></a>
<a href="https://github.com/sanshiliuxiao" target="_blank"><img style="border-radius:50%!important" width="64px" alt="sanshiliuxiao" src="https://avatars.githubusercontent.com/u/25658690?s=64&v=4"></a>
<a href="https://github.com/QJJMSK" target="_blank"><img style="border-radius:50%!important" width="64px" alt="QJJMSK" src="https://avatars.githubusercontent.com/u/28100716?s=64&v=4"></a>
<a href="https://github.com/dspcjy" target="_blank"><img style="border-radius:50%!important" width="64px" alt="dspcjy" src="https://avatars.githubusercontent.com/u/17764711?s=64&v=4"></a>
<a href="https://github.com/yaronzz" target="_blank"><img style="border-radius:50%!important" width="64px" alt="yaronzz" src="https://avatars.githubusercontent.com/u/15530958?s=64&v=4"></a>
<a href="https://github.com/cuiliang" target="_blank"><img style="border-radius:50%!important" width="64px" alt="cuiliang" src="https://avatars.githubusercontent.com/u/1972649?s=64&v=4"></a>
<a href="https://github.com/GenmTim" target="_blank"><img style="border-radius:50%!important" width="64px" alt="GenmTim" src="https://avatars.githubusercontent.com/u/69684108?s=64&v=4"></a>
<a href="https://github.com/ms1094392787" target="_blank"><img style="border-radius:50%!important" width="64px" alt="ms1094392787" src="https://avatars.githubusercontent.com/u/49998334?s=64&v=4"></a>
<a href="https://gitee.com/ZJHome" target="_blank"><img style="border-radius:50%!important" width="64px" alt="ZJHome" src="https://tvax2.sinaimg.cn/crop.0.0.1080.1080.180/69543af8ly8gf4iat3amdj20u00u0whg.jpg"></a>
<a href="https://github.com/JeremyWu917" target="_blank"><img style="border-radius:50%!important" width="64px" alt="JeremyWu917" src="https://avatars.githubusercontent.com/u/54832272?s=64&v=4"></a>
<a href="https://github.com/cagedh1" target="_blank"><img style="border-radius:50%!important" width="64px" alt="cagedh1" src="https://avatars.githubusercontent.com/u/48586139?s=64&v=4"></a>
<a href="https://github.com/Yangf85" target="_blank"><img style="border-radius:50%!important" width="64px" alt="Yangf85" src="https://avatars.githubusercontent.com/u/42733580?s=64&v=4"></a>
<a href="https://github.com/hellozy320" target="_blank"><img style="border-radius:50%!important" width="64px" alt="hellozy320" src="https://avatars.githubusercontent.com/u/68945043?s=64&v=4"></a>
<a href="https://github.com/inows" target="_blank"><img style="border-radius:50%!important" width="64px" alt="inows" src="https://avatars.githubusercontent.com/u/15324558?s=64&v=4"></a>
<a href="https://github.com/oo-simbo" target="_blank"><img style="border-radius:50%!important" width="64px" alt="oo-simbo" src="https://avatars.githubusercontent.com/u/49231532?s=64&v=4"></a>
<a href="https://github.com/775253959" target="_blank"><img style="border-radius:50%!important" width="64px" alt="775253959" src="https://avatars.githubusercontent.com/u/24452103?s=64&v=4"></a>
<a href="https://github.com/IanXxu" target="_blank"><img style="border-radius:50%!important" width="64px" alt="IanXxu" src="https://avatars.githubusercontent.com/u/19760451?s=64&v=4"></a>
<a href="https://github.com/NightwishMeng" target="_blank"><img style="border-radius:50%!important" width="64px" alt="NightwishMeng" src="https://avatars.githubusercontent.com/u/32695316?s64&v=4"></a>
<a href="https://github.com/tonghudan" target="_blank"><img style="border-radius:50%!important" width="64px" alt="tonghudan" src="https://avatars.githubusercontent.com/u/14705603?s=64&v=4"></a>
<a href="https://github.com/Removable" target="_blank"><img style="border-radius:50%!important" width="64px" alt="Removable" src="https://avatars.githubusercontent.com/u/7271713?s=64&v=4"></a>
<a href="https://github.com/nicecodeclub" target="_blank"><img style="border-radius:50%!important" width="64px" alt="nicecodeclub" src="https://avatars.githubusercontent.com/u/12929071?s=64&v=4"></a>
<a href="https://github.com/Jajison" target="_blank"><img style="border-radius:50%!important" width="64px" alt="Jajison" src="https://avatars.githubusercontent.com/u/60476418?s=64&v=4"></a>
<a href="https://github.com/xyghy13" target="_blank"><img style="border-radius:50%!important" width="64px" alt="xyghy13" src="https://avatars.githubusercontent.com/u/27751725?s=64&v=4"></a>
<a href="https://github.com/icarousfff" target="_blank"><img style="border-radius:50%!important" width="64px" alt="icarousfff" src="https://avatars.githubusercontent.com/u/49859230?s=64&v=4"></a>
<a href="https://github.com/qiang9420d" target="_blank"><img style="border-radius:50%!important" width="64px" alt="qiang9420d" src="https://avatars.githubusercontent.com/u/22925262?s=64&v=4"></a>
<a href="https://github.com/zhongwcool" target="_blank"><img style="border-radius:50%!important" width="64px" alt="zhongwcool" src="https://avatars.githubusercontent.com/u/5747392?s=64&v=4"></a>
<a href="https://github.com/HenJigg" target="_blank"><img style="border-radius:50%!important" width="64px" alt="HenJigg" src="https://avatars.githubusercontent.com/u/42528522?s=64&v=4"></a>
<a href="https://github.com/MysticABC" target="_blank"><img style="border-radius:50%!important" width="64px" alt="MysticABC" src="https://avatars.githubusercontent.com/u/53632904?s=64&v=4"></a>
## Special thanks to
[![Visual Studio Community 2019](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/vs2019_logo.png)](https://visualstudio.microsoft.com/free-developer-offers/)
[![JetBrains](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/resharper_logo.png)](https://www.jetbrains.com/?from=HandyControl)
[![Cake](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/cake_logo.png)](https://cakebuild.net/)
[![Gitter](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/gitter_logo.png)](https://gitter.im/)
[![Visual Studio Community 2019](https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/vs2019_logo.png)](https://visualstudio.microsoft.com/free-developer-offers/)
[![JetBrains](https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/resharper_logo.png)](https://www.jetbrains.com/?from=HandyControl)
[![Cake](https://gitee.com/handyorg/HandyOrgResource/raw/master/HandyControl/Resources/cake_logo.png)](https://cakebuild.net/)
## Projects using HandyControl
<a href="https://getquicker.net" target="_blank"><img width="70px" alt="quicker" src="https://i0.hdslb.com/bfs/face/3765a3d0ce5da37e1aaa830d2eec6d3e0806a2d8.jpg@96w_96h_1c.webp"></a>
<a href="https://www.phpenv.cn" target="_blank"><img width="70px" alt="phpenv" src="https://www.phpenv.cn/usr/themes/phpenv/img/logo.png"></a>
<a href="https://github.com/zsh2401/AutumnBox" target="_blank"><img width="70px" alt="AutumnBox" src="https://raw.githubusercontent.com/zsh2401/AutumnBox/master/src/AutumnBox.GUI/Resources/Icons/icon.ico"></a>
if your project is not listed here, let us know! 😀
## Usage
Step 1: Add a reference to HandyControl or search for HandyControl on the nuget;
Step 1: Add a reference to HandyControl or search for HandyControl on the nuget;
```Install-Package HandyControl```
@@ -116,7 +173,7 @@ Step 4: Enjoy coding
## VSIX packages for Visual Studio
| [VS2019](https://marketplace.visualstudio.com/items?itemName=HandyOrg.handycontrolforvs2019) |
| [VS2019](https://marketplace.visualstudio.com/items?itemName=HandyOrg.HandyControl) |
| ------------- |
## Stargazers over time
@@ -131,6 +188,18 @@ Step 4: Enjoy coding
## Latest examples
### Watermark
![Watermark](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/Watermark.png)
### AutoCompleteTextBox
![AutoCompleteTextBox](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/AutoCompleteTextBox.gif)
### ElementGroup
![ElementGroup](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/ElementGroup.png)
### UniformSpacingPanel
![UniformSpacingPanel](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/UniformSpacingPanel.png)
@@ -139,6 +208,8 @@ Step 4: Enjoy coding
![FlexPanel](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/FlexPanel.gif)
## History publication
### CheckComboBox
![CheckComboBox](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/CheckComboBox.png)
@@ -151,8 +222,6 @@ Step 4: Enjoy coding
![PropertyGrid](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/PropertyGrid.png)
## History publication
### Screenshot
![Screenshot](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/Screenshot.png)
@@ -199,7 +268,7 @@ Step 4: Enjoy coding
### SplitButton
![SplitButton](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/SplitButton.png)
![SplitButton](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/SplitButton.gif)
### FloatingBlock
@@ -215,7 +284,7 @@ Step 4: Enjoy coding
### ImageBlock
![ImageBlock](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/ImageBlock.gif)
![ImageBlock](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/ImageBlock.gif)
![ImageBlock](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/ImageBlock.png)
@@ -253,7 +322,7 @@ Step 4: Enjoy coding
### Badge
![Badge](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/Badge.png)
![Badge](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/Badge.gif)
### Gravatar
@@ -273,11 +342,11 @@ Step 4: Enjoy coding
### Transfer
![Transfer](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/Transfer.png)
![Transfer](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/Transfer.gif)
### ProgressButton
![ProgressButton](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/ProgressButton.png)
![ProgressButton](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/ProgressButton.gif)
### CoverFlow
@@ -297,11 +366,11 @@ Step 4: Enjoy coding
### Rate
![Rate](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/Rate.png)
![Rate](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/Rate.gif)
### BlurWindow
![BlurWindow](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/BlurWindow.png)
![BlurWindow](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/BlurWindow.gif)
### FlipClock
@@ -333,7 +402,7 @@ Step 4: Enjoy coding
### CircleProgressBar
![CircleProgressBar](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/CircleProgressBar.png)
![CircleProgressBar](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/CircleProgressBar.gif)
### ButtonStyle
@@ -435,7 +504,7 @@ Step 4: Enjoy coding
### StepBar
![StepBar](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/StepBar.png)
![StepBar](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/StepBar.gif)
### GifImage
@@ -447,11 +516,11 @@ Step 4: Enjoy coding
### Calendar
![Calendar](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/Calendar.jpg)
![Calendar](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/Calendar.gif)
### Clock
![Clock](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/Clock.jpg)
![Clock](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/Clock.png)
### CalendarWithClock
@@ -459,7 +528,7 @@ Step 4: Enjoy coding
### TextBlock
![TextBlock](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/TextBlock.jpg)
![TextBlock](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/TextBlock.png)
### RichTextBoxStyle
@@ -467,11 +536,11 @@ Step 4: Enjoy coding
### TextBox
![TextBox](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/TextBox.jpg)
![TextBox](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/TextBox.png)
### ComboBox
![ComboBox](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/ComboBox.jpg)
![ComboBox](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/ComboBox.png)
### NumericUpDown
@@ -483,27 +552,27 @@ Step 4: Enjoy coding
### PasswordBox
![PasswordBox](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/PasswordBox.jpg)
![PasswordBox](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/PasswordBox.png)
### DataPicker
### DatePicker
![DataPicker](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/DataPicker.jpg)
![DatePicker](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/DatePicker.png)
### TimePicker
![TimePicker](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/TimePicker.jpg)
![TimePicker](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/TimePicker.gif)
### DateTimePicker
![DateTimePicker](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/DateTimePicker.png)
![DateTimePicker](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/DateTimePicker.gif)
### ScrollViewer
![ScrollViewer](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/ScrollViewer.png)
![ScrollViewer](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/ScrollViewer.gif)
### CirclePanel
![CirclePanel](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/CirclePanel.jpg)
![CirclePanel](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/CirclePanel.png)
### TransitioningContentControl
@@ -516,7 +585,3 @@ Step 4: Enjoy coding
### Brush
![Brush](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/Brush.png)
## Switching configuration
![Switching configuration](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/SwitchConfig.png)
+13
View File
@@ -0,0 +1,13 @@
# Security Policy
## Supported Versions
At the moment, the only supported version of the **HandyControl** is the newest one. You can find it on *NuGet*.
[https://www.nuget.org/packages/HandyControl/](https://www.nuget.org/packages/HandyControl)
## Reporting a Vulnerability
Security issues and bugs should be reported privately, by emailing support (at) [HandyOrg](https://github.com/HandyOrg)
HandyOrg does not offer Bug Bounty for the **HandyControl** library.
Please do not open issues for anything you think might have a security implication.
+21
View File
@@ -0,0 +1,21 @@
MIT License
Copyright (c) 2018-2023 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.
+264
View File
@@ -0,0 +1,264 @@
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
<metadata>
<id>HandyControl</id>
<version>3.5.0</version>
<title>HandyOrg</title>
<authors>HandyOrg</authors>
<owners>HandyOrg</owners>
<requireLicenseAcceptance>true</requireLicenseAcceptance>
<license type="file">LICENSE</license>
<icon>icon.png</icon>
<projectUrl>https://github.com/NaBian/HandyControl</projectUrl>
<description>Contains some simple and commonly used WPF controls</description>
<copyright>Copyright © HandyOrg 2018-2023</copyright>
<tags>WPF C# Control</tags>
<dependencies>
<group targetFramework=".NETFramework4.0" />
<group targetFramework=".NETFramework4.5" />
<group targetFramework=".NETFramework4.5.1" />
<group targetFramework=".NETFramework4.5.2" />
<group targetFramework=".NETFramework4.6" />
<group targetFramework=".NETFramework4.6.1" />
<group targetFramework=".NETFramework4.6.2" />
<group targetFramework=".NETFramework4.7" />
<group targetFramework=".NETFramework4.7.1" />
<group targetFramework=".NETFramework4.7.2" />
<group targetFramework=".NETFramework4.8" />
<group targetFramework=".NETFramework4.8.1" />
<group targetFramework=".NETCoreApp3.0" />
<group targetFramework=".NETCoreApp3.1" />
<group targetFramework="net5.0" />
<group targetFramework="net6.0" />
<group targetFramework="net7.0" />
</dependencies>
</metadata>
<files>
<file src="lib\net40\ca-ES\HandyControl.resources.dll" target="lib\net40\ca-ES\HandyControl.resources.dll" />
<file src="lib\net40\en\HandyControl.resources.dll" target="lib\net40\en\HandyControl.resources.dll" />
<file src="lib\net40\fa\HandyControl.resources.dll" target="lib\net40\fa\HandyControl.resources.dll" />
<file src="lib\net40\fr\HandyControl.resources.dll" target="lib\net40\fr\HandyControl.resources.dll" />
<file src="lib\net40\ja\HandyControl.resources.dll" target="lib\net40\ja\HandyControl.resources.dll" />
<file src="lib\net40\ko-KR\HandyControl.resources.dll" target="lib\net40\ko-KR\HandyControl.resources.dll" />
<file src="lib\net40\pl\HandyControl.resources.dll" target="lib\net40\pl\HandyControl.resources.dll" />
<file src="lib\net40\pt-BR\HandyControl.resources.dll" target="lib\net40\pt-BR\HandyControl.resources.dll" />
<file src="lib\net40\ru\HandyControl.resources.dll" target="lib\net40\ru\HandyControl.resources.dll" />
<file src="lib\net40\tr\HandyControl.resources.dll" target="lib\net40\tr\HandyControl.resources.dll" />
<file src="lib\net40\HandyControl.dll" target="lib\net40\HandyControl.dll" />
<file src="lib\net40\HandyControl.pdb" target="lib\net40\HandyControl.pdb" />
<file src="lib\net40\HandyControl.xml" target="lib\net40\HandyControl.xml" />
<file src="lib\net45\ca-ES\HandyControl.resources.dll" target="lib\net45\ca-ES\HandyControl.resources.dll" />
<file src="lib\net45\en\HandyControl.resources.dll" target="lib\net45\en\HandyControl.resources.dll" />
<file src="lib\net45\fa\HandyControl.resources.dll" target="lib\net45\fa\HandyControl.resources.dll" />
<file src="lib\net45\fr\HandyControl.resources.dll" target="lib\net45\fr\HandyControl.resources.dll" />
<file src="lib\net45\ja\HandyControl.resources.dll" target="lib\net45\ja\HandyControl.resources.dll" />
<file src="lib\net45\ko-KR\HandyControl.resources.dll" target="lib\net45\ko-KR\HandyControl.resources.dll" />
<file src="lib\net45\pl\HandyControl.resources.dll" target="lib\net45\pl\HandyControl.resources.dll" />
<file src="lib\net45\pt-BR\HandyControl.resources.dll" target="lib\net45\pt-BR\HandyControl.resources.dll" />
<file src="lib\net45\ru\HandyControl.resources.dll" target="lib\net45\ru\HandyControl.resources.dll" />
<file src="lib\net45\tr\HandyControl.resources.dll" target="lib\net45\tr\HandyControl.resources.dll" />
<file src="lib\net45\HandyControl.dll" target="lib\net45\HandyControl.dll" />
<file src="lib\net45\HandyControl.pdb" target="lib\net45\HandyControl.pdb" />
<file src="lib\net45\HandyControl.xml" target="lib\net45\HandyControl.xml" />
<file src="lib\net451\ca-ES\HandyControl.resources.dll" target="lib\net451\ca-ES\HandyControl.resources.dll" />
<file src="lib\net451\en\HandyControl.resources.dll" target="lib\net451\en\HandyControl.resources.dll" />
<file src="lib\net451\fa\HandyControl.resources.dll" target="lib\net451\fa\HandyControl.resources.dll" />
<file src="lib\net451\fr\HandyControl.resources.dll" target="lib\net451\fr\HandyControl.resources.dll" />
<file src="lib\net451\ja\HandyControl.resources.dll" target="lib\net451\ja\HandyControl.resources.dll" />
<file src="lib\net451\ko-KR\HandyControl.resources.dll" target="lib\net451\ko-KR\HandyControl.resources.dll" />
<file src="lib\net451\pl\HandyControl.resources.dll" target="lib\net451\pl\HandyControl.resources.dll" />
<file src="lib\net451\pt-BR\HandyControl.resources.dll" target="lib\net451\pt-BR\HandyControl.resources.dll" />
<file src="lib\net451\ru\HandyControl.resources.dll" target="lib\net451\ru\HandyControl.resources.dll" />
<file src="lib\net451\tr\HandyControl.resources.dll" target="lib\net451\tr\HandyControl.resources.dll" />
<file src="lib\net451\HandyControl.dll" target="lib\net451\HandyControl.dll" />
<file src="lib\net451\HandyControl.pdb" target="lib\net451\HandyControl.pdb" />
<file src="lib\net451\HandyControl.xml" target="lib\net451\HandyControl.xml" />
<file src="lib\net452\ca-ES\HandyControl.resources.dll" target="lib\net452\ca-ES\HandyControl.resources.dll" />
<file src="lib\net452\en\HandyControl.resources.dll" target="lib\net452\en\HandyControl.resources.dll" />
<file src="lib\net452\fa\HandyControl.resources.dll" target="lib\net452\fa\HandyControl.resources.dll" />
<file src="lib\net452\fr\HandyControl.resources.dll" target="lib\net452\fr\HandyControl.resources.dll" />
<file src="lib\net452\ja\HandyControl.resources.dll" target="lib\net452\ja\HandyControl.resources.dll" />
<file src="lib\net452\ko-KR\HandyControl.resources.dll" target="lib\net452\ko-KR\HandyControl.resources.dll" />
<file src="lib\net452\pl\HandyControl.resources.dll" target="lib\net452\pl\HandyControl.resources.dll" />
<file src="lib\net452\pt-BR\HandyControl.resources.dll" target="lib\net452\pt-BR\HandyControl.resources.dll" />
<file src="lib\net452\ru\HandyControl.resources.dll" target="lib\net452\ru\HandyControl.resources.dll" />
<file src="lib\net452\tr\HandyControl.resources.dll" target="lib\net452\tr\HandyControl.resources.dll" />
<file src="lib\net452\HandyControl.dll" target="lib\net452\HandyControl.dll" />
<file src="lib\net452\HandyControl.pdb" target="lib\net452\HandyControl.pdb" />
<file src="lib\net452\HandyControl.xml" target="lib\net452\HandyControl.xml" />
<file src="lib\net46\ca-ES\HandyControl.resources.dll" target="lib\net46\ca-ES\HandyControl.resources.dll" />
<file src="lib\net46\en\HandyControl.resources.dll" target="lib\net46\en\HandyControl.resources.dll" />
<file src="lib\net46\fa\HandyControl.resources.dll" target="lib\net46\fa\HandyControl.resources.dll" />
<file src="lib\net46\fr\HandyControl.resources.dll" target="lib\net46\fr\HandyControl.resources.dll" />
<file src="lib\net46\ja\HandyControl.resources.dll" target="lib\net46\ja\HandyControl.resources.dll" />
<file src="lib\net46\ko-KR\HandyControl.resources.dll" target="lib\net46\ko-KR\HandyControl.resources.dll" />
<file src="lib\net46\pl\HandyControl.resources.dll" target="lib\net46\pl\HandyControl.resources.dll" />
<file src="lib\net46\pt-BR\HandyControl.resources.dll" target="lib\net46\pt-BR\HandyControl.resources.dll" />
<file src="lib\net46\ru\HandyControl.resources.dll" target="lib\net46\ru\HandyControl.resources.dll" />
<file src="lib\net46\tr\HandyControl.resources.dll" target="lib\net46\tr\HandyControl.resources.dll" />
<file src="lib\net46\HandyControl.dll" target="lib\net46\HandyControl.dll" />
<file src="lib\net46\HandyControl.pdb" target="lib\net46\HandyControl.pdb" />
<file src="lib\net46\HandyControl.xml" target="lib\net46\HandyControl.xml" />
<file src="lib\net461\ca-ES\HandyControl.resources.dll" target="lib\net461\ca-ES\HandyControl.resources.dll" />
<file src="lib\net461\en\HandyControl.resources.dll" target="lib\net461\en\HandyControl.resources.dll" />
<file src="lib\net461\fa\HandyControl.resources.dll" target="lib\net461\fa\HandyControl.resources.dll" />
<file src="lib\net461\fr\HandyControl.resources.dll" target="lib\net461\fr\HandyControl.resources.dll" />
<file src="lib\net461\ja\HandyControl.resources.dll" target="lib\net461\ja\HandyControl.resources.dll" />
<file src="lib\net461\ko-KR\HandyControl.resources.dll" target="lib\net461\ko-KR\HandyControl.resources.dll" />
<file src="lib\net461\pl\HandyControl.resources.dll" target="lib\net461\pl\HandyControl.resources.dll" />
<file src="lib\net461\pt-BR\HandyControl.resources.dll" target="lib\net461\pt-BR\HandyControl.resources.dll" />
<file src="lib\net461\ru\HandyControl.resources.dll" target="lib\net461\ru\HandyControl.resources.dll" />
<file src="lib\net461\tr\HandyControl.resources.dll" target="lib\net461\tr\HandyControl.resources.dll" />
<file src="lib\net461\HandyControl.dll" target="lib\net461\HandyControl.dll" />
<file src="lib\net461\HandyControl.pdb" target="lib\net461\HandyControl.pdb" />
<file src="lib\net461\HandyControl.xml" target="lib\net461\HandyControl.xml" />
<file src="lib\net462\ca-ES\HandyControl.resources.dll" target="lib\net462\ca-ES\HandyControl.resources.dll" />
<file src="lib\net462\en\HandyControl.resources.dll" target="lib\net462\en\HandyControl.resources.dll" />
<file src="lib\net462\fa\HandyControl.resources.dll" target="lib\net462\fa\HandyControl.resources.dll" />
<file src="lib\net462\fr\HandyControl.resources.dll" target="lib\net462\fr\HandyControl.resources.dll" />
<file src="lib\net462\ja\HandyControl.resources.dll" target="lib\net462\ja\HandyControl.resources.dll" />
<file src="lib\net462\ko-KR\HandyControl.resources.dll" target="lib\net462\ko-KR\HandyControl.resources.dll" />
<file src="lib\net462\pl\HandyControl.resources.dll" target="lib\net462\pl\HandyControl.resources.dll" />
<file src="lib\net462\pt-BR\HandyControl.resources.dll" target="lib\net462\pt-BR\HandyControl.resources.dll" />
<file src="lib\net462\ru\HandyControl.resources.dll" target="lib\net462\ru\HandyControl.resources.dll" />
<file src="lib\net462\tr\HandyControl.resources.dll" target="lib\net462\tr\HandyControl.resources.dll" />
<file src="lib\net462\HandyControl.dll" target="lib\net462\HandyControl.dll" />
<file src="lib\net462\HandyControl.pdb" target="lib\net462\HandyControl.pdb" />
<file src="lib\net462\HandyControl.xml" target="lib\net462\HandyControl.xml" />
<file src="lib\net47\ca-ES\HandyControl.resources.dll" target="lib\net47\ca-ES\HandyControl.resources.dll" />
<file src="lib\net47\en\HandyControl.resources.dll" target="lib\net47\en\HandyControl.resources.dll" />
<file src="lib\net47\fa\HandyControl.resources.dll" target="lib\net47\fa\HandyControl.resources.dll" />
<file src="lib\net47\fr\HandyControl.resources.dll" target="lib\net47\fr\HandyControl.resources.dll" />
<file src="lib\net47\ja\HandyControl.resources.dll" target="lib\net47\ja\HandyControl.resources.dll" />
<file src="lib\net47\ko-KR\HandyControl.resources.dll" target="lib\net47\ko-KR\HandyControl.resources.dll" />
<file src="lib\net47\pl\HandyControl.resources.dll" target="lib\net47\pl\HandyControl.resources.dll" />
<file src="lib\net47\pt-BR\HandyControl.resources.dll" target="lib\net47\pt-BR\HandyControl.resources.dll" />
<file src="lib\net47\ru\HandyControl.resources.dll" target="lib\net47\ru\HandyControl.resources.dll" />
<file src="lib\net47\tr\HandyControl.resources.dll" target="lib\net47\tr\HandyControl.resources.dll" />
<file src="lib\net47\HandyControl.dll" target="lib\net47\HandyControl.dll" />
<file src="lib\net47\HandyControl.pdb" target="lib\net47\HandyControl.pdb" />
<file src="lib\net47\HandyControl.xml" target="lib\net47\HandyControl.xml" />
<file src="lib\net471\ca-ES\HandyControl.resources.dll" target="lib\net471\ca-ES\HandyControl.resources.dll" />
<file src="lib\net471\en\HandyControl.resources.dll" target="lib\net471\en\HandyControl.resources.dll" />
<file src="lib\net471\fa\HandyControl.resources.dll" target="lib\net471\fa\HandyControl.resources.dll" />
<file src="lib\net471\fr\HandyControl.resources.dll" target="lib\net471\fr\HandyControl.resources.dll" />
<file src="lib\net471\ja\HandyControl.resources.dll" target="lib\net471\ja\HandyControl.resources.dll" />
<file src="lib\net471\ko-KR\HandyControl.resources.dll" target="lib\net471\ko-KR\HandyControl.resources.dll" />
<file src="lib\net471\pl\HandyControl.resources.dll" target="lib\net471\pl\HandyControl.resources.dll" />
<file src="lib\net471\pt-BR\HandyControl.resources.dll" target="lib\net471\pt-BR\HandyControl.resources.dll" />
<file src="lib\net471\ru\HandyControl.resources.dll" target="lib\net471\ru\HandyControl.resources.dll" />
<file src="lib\net471\tr\HandyControl.resources.dll" target="lib\net471\tr\HandyControl.resources.dll" />
<file src="lib\net471\HandyControl.dll" target="lib\net471\HandyControl.dll" />
<file src="lib\net471\HandyControl.pdb" target="lib\net471\HandyControl.pdb" />
<file src="lib\net471\HandyControl.xml" target="lib\net471\HandyControl.xml" />
<file src="lib\net472\ca-ES\HandyControl.resources.dll" target="lib\net472\ca-ES\HandyControl.resources.dll" />
<file src="lib\net472\en\HandyControl.resources.dll" target="lib\net472\en\HandyControl.resources.dll" />
<file src="lib\net472\fa\HandyControl.resources.dll" target="lib\net472\fa\HandyControl.resources.dll" />
<file src="lib\net472\fr\HandyControl.resources.dll" target="lib\net472\fr\HandyControl.resources.dll" />
<file src="lib\net472\ja\HandyControl.resources.dll" target="lib\net472\ja\HandyControl.resources.dll" />
<file src="lib\net472\ko-KR\HandyControl.resources.dll" target="lib\net472\ko-KR\HandyControl.resources.dll" />
<file src="lib\net472\pl\HandyControl.resources.dll" target="lib\net472\pl\HandyControl.resources.dll" />
<file src="lib\net472\pt-BR\HandyControl.resources.dll" target="lib\net472\pt-BR\HandyControl.resources.dll" />
<file src="lib\net472\ru\HandyControl.resources.dll" target="lib\net472\ru\HandyControl.resources.dll" />
<file src="lib\net472\tr\HandyControl.resources.dll" target="lib\net472\tr\HandyControl.resources.dll" />
<file src="lib\net472\HandyControl.dll" target="lib\net472\HandyControl.dll" />
<file src="lib\net472\HandyControl.pdb" target="lib\net472\HandyControl.pdb" />
<file src="lib\net472\HandyControl.xml" target="lib\net472\HandyControl.xml" />
<file src="lib\net48\ca-ES\HandyControl.resources.dll" target="lib\net48\ca-ES\HandyControl.resources.dll" />
<file src="lib\net48\en\HandyControl.resources.dll" target="lib\net48\en\HandyControl.resources.dll" />
<file src="lib\net48\fa\HandyControl.resources.dll" target="lib\net48\fa\HandyControl.resources.dll" />
<file src="lib\net48\fr\HandyControl.resources.dll" target="lib\net48\fr\HandyControl.resources.dll" />
<file src="lib\net48\ja\HandyControl.resources.dll" target="lib\net48\ja\HandyControl.resources.dll" />
<file src="lib\net48\ko-KR\HandyControl.resources.dll" target="lib\net48\ko-KR\HandyControl.resources.dll" />
<file src="lib\net48\pl\HandyControl.resources.dll" target="lib\net48\pl\HandyControl.resources.dll" />
<file src="lib\net48\pt-BR\HandyControl.resources.dll" target="lib\net48\pt-BR\HandyControl.resources.dll" />
<file src="lib\net48\ru\HandyControl.resources.dll" target="lib\net48\ru\HandyControl.resources.dll" />
<file src="lib\net48\tr\HandyControl.resources.dll" target="lib\net48\tr\HandyControl.resources.dll" />
<file src="lib\net48\HandyControl.dll" target="lib\net48\HandyControl.dll" />
<file src="lib\net48\HandyControl.pdb" target="lib\net48\HandyControl.pdb" />
<file src="lib\net48\HandyControl.xml" target="lib\net48\HandyControl.xml" />
<file src="lib\net481\ca-ES\HandyControl.resources.dll" target="lib\net481\ca-ES\HandyControl.resources.dll" />
<file src="lib\net481\en\HandyControl.resources.dll" target="lib\net481\en\HandyControl.resources.dll" />
<file src="lib\net481\fa\HandyControl.resources.dll" target="lib\net481\fa\HandyControl.resources.dll" />
<file src="lib\net481\fr\HandyControl.resources.dll" target="lib\net481\fr\HandyControl.resources.dll" />
<file src="lib\net481\ja\HandyControl.resources.dll" target="lib\net481\ja\HandyControl.resources.dll" />
<file src="lib\net481\ko-KR\HandyControl.resources.dll" target="lib\net481\ko-KR\HandyControl.resources.dll" />
<file src="lib\net481\pl\HandyControl.resources.dll" target="lib\net481\pl\HandyControl.resources.dll" />
<file src="lib\net481\pt-BR\HandyControl.resources.dll" target="lib\net481\pt-BR\HandyControl.resources.dll" />
<file src="lib\net481\ru\HandyControl.resources.dll" target="lib\net481\ru\HandyControl.resources.dll" />
<file src="lib\net481\tr\HandyControl.resources.dll" target="lib\net481\tr\HandyControl.resources.dll" />
<file src="lib\net481\HandyControl.dll" target="lib\net481\HandyControl.dll" />
<file src="lib\net481\HandyControl.pdb" target="lib\net481\HandyControl.pdb" />
<file src="lib\net481\HandyControl.xml" target="lib\net481\HandyControl.xml" />
<file src="lib\net5.0\ca-ES\HandyControl.resources.dll" target="lib\net5.0\ca-ES\HandyControl.resources.dll" />
<file src="lib\net5.0\en\HandyControl.resources.dll" target="lib\net5.0\en\HandyControl.resources.dll" />
<file src="lib\net5.0\fa\HandyControl.resources.dll" target="lib\net5.0\fa\HandyControl.resources.dll" />
<file src="lib\net5.0\fr\HandyControl.resources.dll" target="lib\net5.0\fr\HandyControl.resources.dll" />
<file src="lib\net5.0\ja\HandyControl.resources.dll" target="lib\net5.0\ja\HandyControl.resources.dll" />
<file src="lib\net5.0\ko-KR\HandyControl.resources.dll" target="lib\net5.0\ko-KR\HandyControl.resources.dll" />
<file src="lib\net5.0\pl\HandyControl.resources.dll" target="lib\net5.0\pl\HandyControl.resources.dll" />
<file src="lib\net5.0\pt-BR\HandyControl.resources.dll" target="lib\net5.0\pt-BR\HandyControl.resources.dll" />
<file src="lib\net5.0\ru\HandyControl.resources.dll" target="lib\net5.0\ru\HandyControl.resources.dll" />
<file src="lib\net5.0\tr\HandyControl.resources.dll" target="lib\net5.0\tr\HandyControl.resources.dll" />
<file src="lib\net5.0\HandyControl.deps.json" target="lib\net5.0\HandyControl.deps.json" />
<file src="lib\net5.0\HandyControl.dll" target="lib\net5.0\HandyControl.dll" />
<file src="lib\net5.0\HandyControl.pdb" target="lib\net5.0\HandyControl.pdb" />
<file src="lib\net5.0\HandyControl.xml" target="lib\net5.0\HandyControl.xml" />
<file src="lib\net6.0\ca-ES\HandyControl.resources.dll" target="lib\net6.0\ca-ES\HandyControl.resources.dll" />
<file src="lib\net6.0\en\HandyControl.resources.dll" target="lib\net6.0\en\HandyControl.resources.dll" />
<file src="lib\net6.0\fa\HandyControl.resources.dll" target="lib\net6.0\fa\HandyControl.resources.dll" />
<file src="lib\net6.0\fr\HandyControl.resources.dll" target="lib\net6.0\fr\HandyControl.resources.dll" />
<file src="lib\net6.0\ja\HandyControl.resources.dll" target="lib\net6.0\ja\HandyControl.resources.dll" />
<file src="lib\net6.0\ko-KR\HandyControl.resources.dll" target="lib\net6.0\ko-KR\HandyControl.resources.dll" />
<file src="lib\net6.0\pl\HandyControl.resources.dll" target="lib\net6.0\pl\HandyControl.resources.dll" />
<file src="lib\net6.0\pt-BR\HandyControl.resources.dll" target="lib\net6.0\pt-BR\HandyControl.resources.dll" />
<file src="lib\net6.0\ru\HandyControl.resources.dll" target="lib\net6.0\ru\HandyControl.resources.dll" />
<file src="lib\net6.0\tr\HandyControl.resources.dll" target="lib\net6.0\tr\HandyControl.resources.dll" />
<file src="lib\net6.0\HandyControl.deps.json" target="lib\net6.0\HandyControl.deps.json" />
<file src="lib\net6.0\HandyControl.dll" target="lib\net6.0\HandyControl.dll" />
<file src="lib\net6.0\HandyControl.pdb" target="lib\net6.0\HandyControl.pdb" />
<file src="lib\net6.0\HandyControl.xml" target="lib\net6.0\HandyControl.xml" />
<file src="lib\net7.0\ca-ES\HandyControl.resources.dll" target="lib\net7.0\ca-ES\HandyControl.resources.dll" />
<file src="lib\net7.0\en\HandyControl.resources.dll" target="lib\net7.0\en\HandyControl.resources.dll" />
<file src="lib\net7.0\fa\HandyControl.resources.dll" target="lib\net7.0\fa\HandyControl.resources.dll" />
<file src="lib\net7.0\fr\HandyControl.resources.dll" target="lib\net7.0\fr\HandyControl.resources.dll" />
<file src="lib\net7.0\ja\HandyControl.resources.dll" target="lib\net7.0\ja\HandyControl.resources.dll" />
<file src="lib\net7.0\ko-KR\HandyControl.resources.dll" target="lib\net7.0\ko-KR\HandyControl.resources.dll" />
<file src="lib\net7.0\pl\HandyControl.resources.dll" target="lib\net7.0\pl\HandyControl.resources.dll" />
<file src="lib\net7.0\pt-BR\HandyControl.resources.dll" target="lib\net7.0\pt-BR\HandyControl.resources.dll" />
<file src="lib\net7.0\ru\HandyControl.resources.dll" target="lib\net7.0\ru\HandyControl.resources.dll" />
<file src="lib\net7.0\tr\HandyControl.resources.dll" target="lib\net7.0\tr\HandyControl.resources.dll" />
<file src="lib\net7.0\HandyControl.deps.json" target="lib\net7.0\HandyControl.deps.json" />
<file src="lib\net7.0\HandyControl.dll" target="lib\net7.0\HandyControl.dll" />
<file src="lib\net7.0\HandyControl.pdb" target="lib\net7.0\HandyControl.pdb" />
<file src="lib\net7.0\HandyControl.xml" target="lib\net7.0\HandyControl.xml" />
<file src="lib\netcoreapp3.0\ca-ES\HandyControl.resources.dll" target="lib\netcoreapp3.0\ca-ES\HandyControl.resources.dll" />
<file src="lib\netcoreapp3.0\en\HandyControl.resources.dll" target="lib\netcoreapp3.0\en\HandyControl.resources.dll" />
<file src="lib\netcoreapp3.0\fa\HandyControl.resources.dll" target="lib\netcoreapp3.0\fa\HandyControl.resources.dll" />
<file src="lib\netcoreapp3.0\fr\HandyControl.resources.dll" target="lib\netcoreapp3.0\fr\HandyControl.resources.dll" />
<file src="lib\netcoreapp3.0\ja\HandyControl.resources.dll" target="lib\netcoreapp3.0\ja\HandyControl.resources.dll" />
<file src="lib\netcoreapp3.0\ko-KR\HandyControl.resources.dll" target="lib\netcoreapp3.0\ko-KR\HandyControl.resources.dll" />
<file src="lib\netcoreapp3.0\pl\HandyControl.resources.dll" target="lib\netcoreapp3.0\pl\HandyControl.resources.dll" />
<file src="lib\netcoreapp3.0\pt-BR\HandyControl.resources.dll" target="lib\netcoreapp3.0\pt-BR\HandyControl.resources.dll" />
<file src="lib\netcoreapp3.0\ru\HandyControl.resources.dll" target="lib\netcoreapp3.0\ru\HandyControl.resources.dll" />
<file src="lib\netcoreapp3.0\tr\HandyControl.resources.dll" target="lib\netcoreapp3.0\tr\HandyControl.resources.dll" />
<file src="lib\netcoreapp3.0\HandyControl.deps.json" target="lib\netcoreapp3.0\HandyControl.deps.json" />
<file src="lib\netcoreapp3.0\HandyControl.dll" target="lib\netcoreapp3.0\HandyControl.dll" />
<file src="lib\netcoreapp3.0\HandyControl.pdb" target="lib\netcoreapp3.0\HandyControl.pdb" />
<file src="lib\netcoreapp3.0\HandyControl.xml" target="lib\netcoreapp3.0\HandyControl.xml" />
<file src="lib\netcoreapp3.1\ca-ES\HandyControl.resources.dll" target="lib\netcoreapp3.1\ca-ES\HandyControl.resources.dll" />
<file src="lib\netcoreapp3.1\en\HandyControl.resources.dll" target="lib\netcoreapp3.1\en\HandyControl.resources.dll" />
<file src="lib\netcoreapp3.1\fa\HandyControl.resources.dll" target="lib\netcoreapp3.1\fa\HandyControl.resources.dll" />
<file src="lib\netcoreapp3.1\fr\HandyControl.resources.dll" target="lib\netcoreapp3.1\fr\HandyControl.resources.dll" />
<file src="lib\netcoreapp3.1\ja\HandyControl.resources.dll" target="lib\netcoreapp3.1\ja\HandyControl.resources.dll" />
<file src="lib\netcoreapp3.1\ko-KR\HandyControl.resources.dll" target="lib\netcoreapp3.1\ko-KR\HandyControl.resources.dll" />
<file src="lib\netcoreapp3.1\pl\HandyControl.resources.dll" target="lib\netcoreapp3.1\pl\HandyControl.resources.dll" />
<file src="lib\netcoreapp3.1\pt-BR\HandyControl.resources.dll" target="lib\netcoreapp3.1\pt-BR\HandyControl.resources.dll" />
<file src="lib\netcoreapp3.1\ru\HandyControl.resources.dll" target="lib\netcoreapp3.1\ru\HandyControl.resources.dll" />
<file src="lib\netcoreapp3.1\tr\HandyControl.resources.dll" target="lib\netcoreapp3.1\tr\HandyControl.resources.dll" />
<file src="lib\netcoreapp3.1\HandyControl.deps.json" target="lib\netcoreapp3.1\HandyControl.deps.json" />
<file src="lib\netcoreapp3.1\HandyControl.dll" target="lib\netcoreapp3.1\HandyControl.dll" />
<file src="lib\netcoreapp3.1\HandyControl.pdb" target="lib\netcoreapp3.1\HandyControl.pdb" />
<file src="lib\netcoreapp3.1\HandyControl.xml" target="lib\netcoreapp3.1\HandyControl.xml" />
</files>
</package>
+59
View File
@@ -0,0 +1,59 @@
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
<metadata>
<id>HandyControl.Lang.ca-ES</id>
<version>3.5.0</version>
<title>HandyOrg</title>
<authors>HandyOrg</authors>
<owners>HandyOrg</owners>
<requireLicenseAcceptance>true</requireLicenseAcceptance>
<license type="file">LICENSE</license>
<icon>icon.png</icon>
<projectUrl>https://github.com/HandyOrg/HandyControl</projectUrl>
<description>Contains some simple and commonly used WPF controls</description>
<releaseNotes>Changes are detailed at https://github.com/HandyOrg/HandyControl/releases</releaseNotes>
<copyright>Copyright © HandyOrg 2018-2023</copyright>
<tags>WPF C# Control</tags>
<repository type="git" url="https://github.com/HandyOrg/HandyControl" commit="e118ac98ccd1db28f25f66ba2da5c2e029a622a4" />
<dependencies>
<group targetFramework=".NETFramework4.0" />
<group targetFramework=".NETFramework4.5" />
<group targetFramework=".NETFramework4.5.1" />
<group targetFramework=".NETFramework4.5.2" />
<group targetFramework=".NETFramework4.6" />
<group targetFramework=".NETFramework4.6.1" />
<group targetFramework=".NETFramework4.6.2" />
<group targetFramework=".NETFramework4.7" />
<group targetFramework=".NETFramework4.7.1" />
<group targetFramework=".NETFramework4.7.2" />
<group targetFramework=".NETFramework4.8" />
<group targetFramework=".NETFramework4.8.1" />
<group targetFramework=".NETCoreApp3.0" />
<group targetFramework=".NETCoreApp3.1" />
<group targetFramework="net5.0" />
<group targetFramework="net6.0" />
<group targetFramework="net7.0" />
</dependencies>
</metadata>
<files>
<file src="lib\net40\ca-ES\HandyControl.resources.dll" target="lib\net40\ca-ES\HandyControl.resources.dll" />
<file src="lib\net45\ca-ES\HandyControl.resources.dll" target="lib\net45\ca-ES\HandyControl.resources.dll" />
<file src="lib\net451\ca-ES\HandyControl.resources.dll" target="lib\net451\ca-ES\HandyControl.resources.dll" />
<file src="lib\net452\ca-ES\HandyControl.resources.dll" target="lib\net452\ca-ES\HandyControl.resources.dll" />
<file src="lib\net46\ca-ES\HandyControl.resources.dll" target="lib\net46\ca-ES\HandyControl.resources.dll" />
<file src="lib\net461\ca-ES\HandyControl.resources.dll" target="lib\net461\ca-ES\HandyControl.resources.dll" />
<file src="lib\net462\ca-ES\HandyControl.resources.dll" target="lib\net462\ca-ES\HandyControl.resources.dll" />
<file src="lib\net47\ca-ES\HandyControl.resources.dll" target="lib\net47\ca-ES\HandyControl.resources.dll" />
<file src="lib\net471\ca-ES\HandyControl.resources.dll" target="lib\net471\ca-ES\HandyControl.resources.dll" />
<file src="lib\net472\ca-ES\HandyControl.resources.dll" target="lib\net472\ca-ES\HandyControl.resources.dll" />
<file src="lib\net48\ca-ES\HandyControl.resources.dll" target="lib\net48\ca-ES\HandyControl.resources.dll" />
<file src="lib\net481\ca-ES\HandyControl.resources.dll" target="lib\net481\ca-ES\HandyControl.resources.dll" />
<file src="lib\net5.0\ca-ES\HandyControl.resources.dll" target="lib\net5.0\ca-ES\HandyControl.resources.dll" />
<file src="lib\net6.0\ca-ES\HandyControl.resources.dll" target="lib\net6.0\ca-ES\HandyControl.resources.dll" />
<file src="lib\net7.0\ca-ES\HandyControl.resources.dll" target="lib\net7.0\ca-ES\HandyControl.resources.dll" />
<file src="lib\netcoreapp3.0\ca-ES\HandyControl.resources.dll" target="lib\netcoreapp3.0\ca-ES\HandyControl.resources.dll" />
<file src="lib\netcoreapp3.1\ca-ES\HandyControl.resources.dll" target="lib\netcoreapp3.1\ca-ES\HandyControl.resources.dll" />
<file src="icon.png" target="icon.png" />
<file src="LICENSE" target="LICENSE" />
</files>
</package>
+59
View File
@@ -0,0 +1,59 @@
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
<metadata>
<id>HandyControl.Lang.cs</id>
<version>3.5.0</version>
<title>HandyOrg</title>
<authors>HandyOrg</authors>
<owners>HandyOrg</owners>
<requireLicenseAcceptance>true</requireLicenseAcceptance>
<license type="file">LICENSE</license>
<icon>icon.png</icon>
<projectUrl>https://github.com/HandyOrg/HandyControl</projectUrl>
<description>Contains some simple and commonly used WPF controls</description>
<releaseNotes>Changes are detailed at https://github.com/HandyOrg/HandyControl/releases</releaseNotes>
<copyright>Copyright © HandyOrg 2018-2023</copyright>
<tags>WPF C# Control</tags>
<repository type="git" url="https://github.com/HandyOrg/HandyControl" commit="e118ac98ccd1db28f25f66ba2da5c2e029a622a4" />
<dependencies>
<group targetFramework=".NETFramework4.0" />
<group targetFramework=".NETFramework4.5" />
<group targetFramework=".NETFramework4.5.1" />
<group targetFramework=".NETFramework4.5.2" />
<group targetFramework=".NETFramework4.6" />
<group targetFramework=".NETFramework4.6.1" />
<group targetFramework=".NETFramework4.6.2" />
<group targetFramework=".NETFramework4.7" />
<group targetFramework=".NETFramework4.7.1" />
<group targetFramework=".NETFramework4.7.2" />
<group targetFramework=".NETFramework4.8" />
<group targetFramework=".NETFramework4.8.1" />
<group targetFramework=".NETCoreApp3.0" />
<group targetFramework=".NETCoreApp3.1" />
<group targetFramework="net5.0" />
<group targetFramework="net6.0" />
<group targetFramework="net7.0" />
</dependencies>
</metadata>
<files>
<file src="lib\net40\cs\HandyControl.resources.dll" target="lib\net40\cs\HandyControl.resources.dll" />
<file src="lib\net45\cs\HandyControl.resources.dll" target="lib\net45\cs\HandyControl.resources.dll" />
<file src="lib\net451\cs\HandyControl.resources.dll" target="lib\net451\cs\HandyControl.resources.dll" />
<file src="lib\net452\cs\HandyControl.resources.dll" target="lib\net452\cs\HandyControl.resources.dll" />
<file src="lib\net46\cs\HandyControl.resources.dll" target="lib\net46\cs\HandyControl.resources.dll" />
<file src="lib\net461\cs\HandyControl.resources.dll" target="lib\net461\cs\HandyControl.resources.dll" />
<file src="lib\net462\cs\HandyControl.resources.dll" target="lib\net462\cs\HandyControl.resources.dll" />
<file src="lib\net47\cs\HandyControl.resources.dll" target="lib\net47\cs\HandyControl.resources.dll" />
<file src="lib\net471\cs\HandyControl.resources.dll" target="lib\net471\cs\HandyControl.resources.dll" />
<file src="lib\net472\cs\HandyControl.resources.dll" target="lib\net472\cs\HandyControl.resources.dll" />
<file src="lib\net48\cs\HandyControl.resources.dll" target="lib\net48\cs\HandyControl.resources.dll" />
<file src="lib\net481\cs\HandyControl.resources.dll" target="lib\net481\cs\HandyControl.resources.dll" />
<file src="lib\net5.0\cs\HandyControl.resources.dll" target="lib\net5.0\cs\HandyControl.resources.dll" />
<file src="lib\net6.0\cs\HandyControl.resources.dll" target="lib\net6.0\cs\HandyControl.resources.dll" />
<file src="lib\net7.0\cs\HandyControl.resources.dll" target="lib\net7.0\cs\HandyControl.resources.dll" />
<file src="lib\netcoreapp3.0\cs\HandyControl.resources.dll" target="lib\netcoreapp3.0\cs\HandyControl.resources.dll" />
<file src="lib\netcoreapp3.1\cs\HandyControl.resources.dll" target="lib\netcoreapp3.1\cs\HandyControl.resources.dll" />
<file src="icon.png" target="icon.png" />
<file src="LICENSE" target="LICENSE" />
</files>
</package>
+59
View File
@@ -0,0 +1,59 @@
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
<metadata>
<id>HandyControl.Lang.en</id>
<version>3.5.0</version>
<title>HandyOrg</title>
<authors>HandyOrg</authors>
<owners>HandyOrg</owners>
<requireLicenseAcceptance>true</requireLicenseAcceptance>
<license type="file">LICENSE</license>
<icon>icon.png</icon>
<projectUrl>https://github.com/HandyOrg/HandyControl</projectUrl>
<description>Contains some simple and commonly used WPF controls</description>
<releaseNotes>Changes are detailed at https://github.com/HandyOrg/HandyControl/releases</releaseNotes>
<copyright>Copyright © HandyOrg 2018-2023</copyright>
<tags>WPF C# Control</tags>
<repository type="git" url="https://github.com/HandyOrg/HandyControl" commit="e118ac98ccd1db28f25f66ba2da5c2e029a622a4" />
<dependencies>
<group targetFramework=".NETFramework4.0" />
<group targetFramework=".NETFramework4.5" />
<group targetFramework=".NETFramework4.5.1" />
<group targetFramework=".NETFramework4.5.2" />
<group targetFramework=".NETFramework4.6" />
<group targetFramework=".NETFramework4.6.1" />
<group targetFramework=".NETFramework4.6.2" />
<group targetFramework=".NETFramework4.7" />
<group targetFramework=".NETFramework4.7.1" />
<group targetFramework=".NETFramework4.7.2" />
<group targetFramework=".NETFramework4.8" />
<group targetFramework=".NETFramework4.8.1" />
<group targetFramework=".NETCoreApp3.0" />
<group targetFramework=".NETCoreApp3.1" />
<group targetFramework="net5.0" />
<group targetFramework="net6.0" />
<group targetFramework="net7.0" />
</dependencies>
</metadata>
<files>
<file src="lib\net40\en\HandyControl.resources.dll" target="lib\net40\en\HandyControl.resources.dll" />
<file src="lib\net45\en\HandyControl.resources.dll" target="lib\net45\en\HandyControl.resources.dll" />
<file src="lib\net451\en\HandyControl.resources.dll" target="lib\net451\en\HandyControl.resources.dll" />
<file src="lib\net452\en\HandyControl.resources.dll" target="lib\net452\en\HandyControl.resources.dll" />
<file src="lib\net46\en\HandyControl.resources.dll" target="lib\net46\en\HandyControl.resources.dll" />
<file src="lib\net461\en\HandyControl.resources.dll" target="lib\net461\en\HandyControl.resources.dll" />
<file src="lib\net462\en\HandyControl.resources.dll" target="lib\net462\en\HandyControl.resources.dll" />
<file src="lib\net47\en\HandyControl.resources.dll" target="lib\net47\en\HandyControl.resources.dll" />
<file src="lib\net471\en\HandyControl.resources.dll" target="lib\net471\en\HandyControl.resources.dll" />
<file src="lib\net472\en\HandyControl.resources.dll" target="lib\net472\en\HandyControl.resources.dll" />
<file src="lib\net48\en\HandyControl.resources.dll" target="lib\net48\en\HandyControl.resources.dll" />
<file src="lib\net481\en\HandyControl.resources.dll" target="lib\net481\en\HandyControl.resources.dll" />
<file src="lib\net5.0\en\HandyControl.resources.dll" target="lib\net5.0\en\HandyControl.resources.dll" />
<file src="lib\net6.0\en\HandyControl.resources.dll" target="lib\net6.0\en\HandyControl.resources.dll" />
<file src="lib\net7.0\en\HandyControl.resources.dll" target="lib\net7.0\en\HandyControl.resources.dll" />
<file src="lib\netcoreapp3.0\en\HandyControl.resources.dll" target="lib\netcoreapp3.0\en\HandyControl.resources.dll" />
<file src="lib\netcoreapp3.1\en\HandyControl.resources.dll" target="lib\netcoreapp3.1\en\HandyControl.resources.dll" />
<file src="icon.png" target="icon.png" />
<file src="LICENSE" target="LICENSE" />
</files>
</package>
+59
View File
@@ -0,0 +1,59 @@
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
<metadata>
<id>HandyControl.Lang.es</id>
<version>3.5.0</version>
<title>HandyOrg</title>
<authors>HandyOrg</authors>
<owners>HandyOrg</owners>
<requireLicenseAcceptance>true</requireLicenseAcceptance>
<license type="file">LICENSE</license>
<icon>icon.png</icon>
<projectUrl>https://github.com/HandyOrg/HandyControl</projectUrl>
<description>Contains some simple and commonly used WPF controls</description>
<releaseNotes>Changes are detailed at https://github.com/HandyOrg/HandyControl/releases</releaseNotes>
<copyright>Copyright © HandyOrg 2018-2023</copyright>
<tags>WPF C# Control</tags>
<repository type="git" url="https://github.com/HandyOrg/HandyControl" commit="e118ac98ccd1db28f25f66ba2da5c2e029a622a4" />
<dependencies>
<group targetFramework=".NETFramework4.0" />
<group targetFramework=".NETFramework4.5" />
<group targetFramework=".NETFramework4.5.1" />
<group targetFramework=".NETFramework4.5.2" />
<group targetFramework=".NETFramework4.6" />
<group targetFramework=".NETFramework4.6.1" />
<group targetFramework=".NETFramework4.6.2" />
<group targetFramework=".NETFramework4.7" />
<group targetFramework=".NETFramework4.7.1" />
<group targetFramework=".NETFramework4.7.2" />
<group targetFramework=".NETFramework4.8" />
<group targetFramework=".NETFramework4.8.1" />
<group targetFramework=".NETCoreApp3.0" />
<group targetFramework=".NETCoreApp3.1" />
<group targetFramework="net5.0" />
<group targetFramework="net6.0" />
<group targetFramework="net7.0" />
</dependencies>
</metadata>
<files>
<file src="lib\net40\es\HandyControl.resources.dll" target="lib\net40\es\HandyControl.resources.dll" />
<file src="lib\net45\es\HandyControl.resources.dll" target="lib\net45\es\HandyControl.resources.dll" />
<file src="lib\net451\es\HandyControl.resources.dll" target="lib\net451\es\HandyControl.resources.dll" />
<file src="lib\net452\es\HandyControl.resources.dll" target="lib\net452\es\HandyControl.resources.dll" />
<file src="lib\net46\es\HandyControl.resources.dll" target="lib\net46\es\HandyControl.resources.dll" />
<file src="lib\net461\es\HandyControl.resources.dll" target="lib\net461\es\HandyControl.resources.dll" />
<file src="lib\net462\es\HandyControl.resources.dll" target="lib\net462\es\HandyControl.resources.dll" />
<file src="lib\net47\es\HandyControl.resources.dll" target="lib\net47\es\HandyControl.resources.dll" />
<file src="lib\net471\es\HandyControl.resources.dll" target="lib\net471\es\HandyControl.resources.dll" />
<file src="lib\net472\es\HandyControl.resources.dll" target="lib\net472\es\HandyControl.resources.dll" />
<file src="lib\net48\es\HandyControl.resources.dll" target="lib\net48\es\HandyControl.resources.dll" />
<file src="lib\net481\es\HandyControl.resources.dll" target="lib\net481\es\HandyControl.resources.dll" />
<file src="lib\net5.0\es\HandyControl.resources.dll" target="lib\net5.0\es\HandyControl.resources.dll" />
<file src="lib\net6.0\es\HandyControl.resources.dll" target="lib\net6.0\es\HandyControl.resources.dll" />
<file src="lib\net7.0\es\HandyControl.resources.dll" target="lib\net7.0\es\HandyControl.resources.dll" />
<file src="lib\netcoreapp3.0\es\HandyControl.resources.dll" target="lib\netcoreapp3.0\es\HandyControl.resources.dll" />
<file src="lib\netcoreapp3.1\es\HandyControl.resources.dll" target="lib\netcoreapp3.1\es\HandyControl.resources.dll" />
<file src="icon.png" target="icon.png" />
<file src="LICENSE" target="LICENSE" />
</files>
</package>
+59
View File
@@ -0,0 +1,59 @@
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
<metadata>
<id>HandyControl.Lang.fa</id>
<version>3.5.0</version>
<title>HandyOrg</title>
<authors>HandyOrg</authors>
<owners>HandyOrg</owners>
<requireLicenseAcceptance>true</requireLicenseAcceptance>
<license type="file">LICENSE</license>
<icon>icon.png</icon>
<projectUrl>https://github.com/HandyOrg/HandyControl</projectUrl>
<description>Contains some simple and commonly used WPF controls</description>
<releaseNotes>Changes are detailed at https://github.com/HandyOrg/HandyControl/releases</releaseNotes>
<copyright>Copyright © HandyOrg 2018-2023</copyright>
<tags>WPF C# Control</tags>
<repository type="git" url="https://github.com/HandyOrg/HandyControl" commit="e118ac98ccd1db28f25f66ba2da5c2e029a622a4" />
<dependencies>
<group targetFramework=".NETFramework4.0" />
<group targetFramework=".NETFramework4.5" />
<group targetFramework=".NETFramework4.5.1" />
<group targetFramework=".NETFramework4.5.2" />
<group targetFramework=".NETFramework4.6" />
<group targetFramework=".NETFramework4.6.1" />
<group targetFramework=".NETFramework4.6.2" />
<group targetFramework=".NETFramework4.7" />
<group targetFramework=".NETFramework4.7.1" />
<group targetFramework=".NETFramework4.7.2" />
<group targetFramework=".NETFramework4.8" />
<group targetFramework=".NETFramework4.8.1" />
<group targetFramework=".NETCoreApp3.0" />
<group targetFramework=".NETCoreApp3.1" />
<group targetFramework="net5.0" />
<group targetFramework="net6.0" />
<group targetFramework="net7.0" />
</dependencies>
</metadata>
<files>
<file src="lib\net40\fa\HandyControl.resources.dll" target="lib\net40\fa\HandyControl.resources.dll" />
<file src="lib\net45\fa\HandyControl.resources.dll" target="lib\net45\fa\HandyControl.resources.dll" />
<file src="lib\net451\fa\HandyControl.resources.dll" target="lib\net451\fa\HandyControl.resources.dll" />
<file src="lib\net452\fa\HandyControl.resources.dll" target="lib\net452\fa\HandyControl.resources.dll" />
<file src="lib\net46\fa\HandyControl.resources.dll" target="lib\net46\fa\HandyControl.resources.dll" />
<file src="lib\net461\fa\HandyControl.resources.dll" target="lib\net461\fa\HandyControl.resources.dll" />
<file src="lib\net462\fa\HandyControl.resources.dll" target="lib\net462\fa\HandyControl.resources.dll" />
<file src="lib\net47\fa\HandyControl.resources.dll" target="lib\net47\fa\HandyControl.resources.dll" />
<file src="lib\net471\fa\HandyControl.resources.dll" target="lib\net471\fa\HandyControl.resources.dll" />
<file src="lib\net472\fa\HandyControl.resources.dll" target="lib\net472\fa\HandyControl.resources.dll" />
<file src="lib\net48\fa\HandyControl.resources.dll" target="lib\net48\fa\HandyControl.resources.dll" />
<file src="lib\net481\fa\HandyControl.resources.dll" target="lib\net481\fa\HandyControl.resources.dll" />
<file src="lib\net5.0\fa\HandyControl.resources.dll" target="lib\net5.0\fa\HandyControl.resources.dll" />
<file src="lib\net6.0\fa\HandyControl.resources.dll" target="lib\net6.0\fa\HandyControl.resources.dll" />
<file src="lib\net7.0\fa\HandyControl.resources.dll" target="lib\net7.0\fa\HandyControl.resources.dll" />
<file src="lib\netcoreapp3.0\fa\HandyControl.resources.dll" target="lib\netcoreapp3.0\fa\HandyControl.resources.dll" />
<file src="lib\netcoreapp3.1\fa\HandyControl.resources.dll" target="lib\netcoreapp3.1\fa\HandyControl.resources.dll" />
<file src="icon.png" target="icon.png" />
<file src="LICENSE" target="LICENSE" />
</files>
</package>
+59
View File
@@ -0,0 +1,59 @@
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
<metadata>
<id>HandyControl.Lang.fr</id>
<version>3.5.0</version>
<title>HandyOrg</title>
<authors>HandyOrg</authors>
<owners>HandyOrg</owners>
<requireLicenseAcceptance>true</requireLicenseAcceptance>
<license type="file">LICENSE</license>
<icon>icon.png</icon>
<projectUrl>https://github.com/HandyOrg/HandyControl</projectUrl>
<description>Contains some simple and commonly used WPF controls</description>
<releaseNotes>Changes are detailed at https://github.com/HandyOrg/HandyControl/releases</releaseNotes>
<copyright>Copyright © HandyOrg 2018-2023</copyright>
<tags>WPF C# Control</tags>
<repository type="git" url="https://github.com/HandyOrg/HandyControl" commit="e118ac98ccd1db28f25f66ba2da5c2e029a622a4" />
<dependencies>
<group targetFramework=".NETFramework4.0" />
<group targetFramework=".NETFramework4.5" />
<group targetFramework=".NETFramework4.5.1" />
<group targetFramework=".NETFramework4.5.2" />
<group targetFramework=".NETFramework4.6" />
<group targetFramework=".NETFramework4.6.1" />
<group targetFramework=".NETFramework4.6.2" />
<group targetFramework=".NETFramework4.7" />
<group targetFramework=".NETFramework4.7.1" />
<group targetFramework=".NETFramework4.7.2" />
<group targetFramework=".NETFramework4.8" />
<group targetFramework=".NETFramework4.8.1" />
<group targetFramework=".NETCoreApp3.0" />
<group targetFramework=".NETCoreApp3.1" />
<group targetFramework="net5.0" />
<group targetFramework="net6.0" />
<group targetFramework="net7.0" />
</dependencies>
</metadata>
<files>
<file src="lib\net40\fr\HandyControl.resources.dll" target="lib\net40\fr\HandyControl.resources.dll" />
<file src="lib\net45\fr\HandyControl.resources.dll" target="lib\net45\fr\HandyControl.resources.dll" />
<file src="lib\net451\fr\HandyControl.resources.dll" target="lib\net451\fr\HandyControl.resources.dll" />
<file src="lib\net452\fr\HandyControl.resources.dll" target="lib\net452\fr\HandyControl.resources.dll" />
<file src="lib\net46\fr\HandyControl.resources.dll" target="lib\net46\fr\HandyControl.resources.dll" />
<file src="lib\net461\fr\HandyControl.resources.dll" target="lib\net461\fr\HandyControl.resources.dll" />
<file src="lib\net462\fr\HandyControl.resources.dll" target="lib\net462\fr\HandyControl.resources.dll" />
<file src="lib\net47\fr\HandyControl.resources.dll" target="lib\net47\fr\HandyControl.resources.dll" />
<file src="lib\net471\fr\HandyControl.resources.dll" target="lib\net471\fr\HandyControl.resources.dll" />
<file src="lib\net472\fr\HandyControl.resources.dll" target="lib\net472\fr\HandyControl.resources.dll" />
<file src="lib\net48\fr\HandyControl.resources.dll" target="lib\net48\fr\HandyControl.resources.dll" />
<file src="lib\net481\fr\HandyControl.resources.dll" target="lib\net481\fr\HandyControl.resources.dll" />
<file src="lib\net5.0\fr\HandyControl.resources.dll" target="lib\net5.0\fr\HandyControl.resources.dll" />
<file src="lib\net6.0\fr\HandyControl.resources.dll" target="lib\net6.0\fr\HandyControl.resources.dll" />
<file src="lib\net7.0\fr\HandyControl.resources.dll" target="lib\net7.0\fr\HandyControl.resources.dll" />
<file src="lib\netcoreapp3.0\fr\HandyControl.resources.dll" target="lib\netcoreapp3.0\fr\HandyControl.resources.dll" />
<file src="lib\netcoreapp3.1\fr\HandyControl.resources.dll" target="lib\netcoreapp3.1\fr\HandyControl.resources.dll" />
<file src="icon.png" target="icon.png" />
<file src="LICENSE" target="LICENSE" />
</files>
</package>
+59
View File
@@ -0,0 +1,59 @@
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
<metadata>
<id>HandyControl.Lang.ja</id>
<version>3.5.0</version>
<title>HandyOrg</title>
<authors>HandyOrg</authors>
<owners>HandyOrg</owners>
<requireLicenseAcceptance>true</requireLicenseAcceptance>
<license type="file">LICENSE</license>
<icon>icon.png</icon>
<projectUrl>https://github.com/HandyOrg/HandyControl</projectUrl>
<description>Contains some simple and commonly used WPF controls</description>
<releaseNotes>Changes are detailed at https://github.com/HandyOrg/HandyControl/releases</releaseNotes>
<copyright>Copyright © HandyOrg 2018-2023</copyright>
<tags>WPF C# Control</tags>
<repository type="git" url="https://github.com/HandyOrg/HandyControl" commit="e118ac98ccd1db28f25f66ba2da5c2e029a622a4" />
<dependencies>
<group targetFramework=".NETFramework4.0" />
<group targetFramework=".NETFramework4.5" />
<group targetFramework=".NETFramework4.5.1" />
<group targetFramework=".NETFramework4.5.2" />
<group targetFramework=".NETFramework4.6" />
<group targetFramework=".NETFramework4.6.1" />
<group targetFramework=".NETFramework4.6.2" />
<group targetFramework=".NETFramework4.7" />
<group targetFramework=".NETFramework4.7.1" />
<group targetFramework=".NETFramework4.7.2" />
<group targetFramework=".NETFramework4.8" />
<group targetFramework=".NETFramework4.8.1" />
<group targetFramework=".NETCoreApp3.0" />
<group targetFramework=".NETCoreApp3.1" />
<group targetFramework="net5.0" />
<group targetFramework="net6.0" />
<group targetFramework="net7.0" />
</dependencies>
</metadata>
<files>
<file src="lib\net40\ja\HandyControl.resources.dll" target="lib\net40\ja\HandyControl.resources.dll" />
<file src="lib\net45\ja\HandyControl.resources.dll" target="lib\net45\ja\HandyControl.resources.dll" />
<file src="lib\net451\ja\HandyControl.resources.dll" target="lib\net451\ja\HandyControl.resources.dll" />
<file src="lib\net452\ja\HandyControl.resources.dll" target="lib\net452\ja\HandyControl.resources.dll" />
<file src="lib\net46\ja\HandyControl.resources.dll" target="lib\net46\ja\HandyControl.resources.dll" />
<file src="lib\net461\ja\HandyControl.resources.dll" target="lib\net461\ja\HandyControl.resources.dll" />
<file src="lib\net462\ja\HandyControl.resources.dll" target="lib\net462\ja\HandyControl.resources.dll" />
<file src="lib\net47\ja\HandyControl.resources.dll" target="lib\net47\ja\HandyControl.resources.dll" />
<file src="lib\net471\ja\HandyControl.resources.dll" target="lib\net471\ja\HandyControl.resources.dll" />
<file src="lib\net472\ja\HandyControl.resources.dll" target="lib\net472\ja\HandyControl.resources.dll" />
<file src="lib\net48\ja\HandyControl.resources.dll" target="lib\net48\ja\HandyControl.resources.dll" />
<file src="lib\net481\ja\HandyControl.resources.dll" target="lib\net481\ja\HandyControl.resources.dll" />
<file src="lib\net5.0\ja\HandyControl.resources.dll" target="lib\net5.0\ja\HandyControl.resources.dll" />
<file src="lib\net6.0\ja\HandyControl.resources.dll" target="lib\net6.0\ja\HandyControl.resources.dll" />
<file src="lib\net7.0\ja\HandyControl.resources.dll" target="lib\net7.0\ja\HandyControl.resources.dll" />
<file src="lib\netcoreapp3.0\ja\HandyControl.resources.dll" target="lib\netcoreapp3.0\ja\HandyControl.resources.dll" />
<file src="lib\netcoreapp3.1\ja\HandyControl.resources.dll" target="lib\netcoreapp3.1\ja\HandyControl.resources.dll" />
<file src="icon.png" target="icon.png" />
<file src="LICENSE" target="LICENSE" />
</files>
</package>
+59
View File
@@ -0,0 +1,59 @@
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
<metadata>
<id>HandyControl.Lang.ko-KR</id>
<version>3.5.0</version>
<title>HandyOrg</title>
<authors>HandyOrg</authors>
<owners>HandyOrg</owners>
<requireLicenseAcceptance>true</requireLicenseAcceptance>
<license type="file">LICENSE</license>
<icon>icon.png</icon>
<projectUrl>https://github.com/HandyOrg/HandyControl</projectUrl>
<description>Contains some simple and commonly used WPF controls</description>
<releaseNotes>Changes are detailed at https://github.com/HandyOrg/HandyControl/releases</releaseNotes>
<copyright>Copyright © HandyOrg 2018-2023</copyright>
<tags>WPF C# Control</tags>
<repository type="git" url="https://github.com/HandyOrg/HandyControl" commit="e118ac98ccd1db28f25f66ba2da5c2e029a622a4" />
<dependencies>
<group targetFramework=".NETFramework4.0" />
<group targetFramework=".NETFramework4.5" />
<group targetFramework=".NETFramework4.5.1" />
<group targetFramework=".NETFramework4.5.2" />
<group targetFramework=".NETFramework4.6" />
<group targetFramework=".NETFramework4.6.1" />
<group targetFramework=".NETFramework4.6.2" />
<group targetFramework=".NETFramework4.7" />
<group targetFramework=".NETFramework4.7.1" />
<group targetFramework=".NETFramework4.7.2" />
<group targetFramework=".NETFramework4.8" />
<group targetFramework=".NETFramework4.8.1" />
<group targetFramework=".NETCoreApp3.0" />
<group targetFramework=".NETCoreApp3.1" />
<group targetFramework="net5.0" />
<group targetFramework="net6.0" />
<group targetFramework="net7.0" />
</dependencies>
</metadata>
<files>
<file src="lib\net40\ko-KR\HandyControl.resources.dll" target="lib\net40\ko-KR\HandyControl.resources.dll" />
<file src="lib\net45\ko-KR\HandyControl.resources.dll" target="lib\net45\ko-KR\HandyControl.resources.dll" />
<file src="lib\net451\ko-KR\HandyControl.resources.dll" target="lib\net451\ko-KR\HandyControl.resources.dll" />
<file src="lib\net452\ko-KR\HandyControl.resources.dll" target="lib\net452\ko-KR\HandyControl.resources.dll" />
<file src="lib\net46\ko-KR\HandyControl.resources.dll" target="lib\net46\ko-KR\HandyControl.resources.dll" />
<file src="lib\net461\ko-KR\HandyControl.resources.dll" target="lib\net461\ko-KR\HandyControl.resources.dll" />
<file src="lib\net462\ko-KR\HandyControl.resources.dll" target="lib\net462\ko-KR\HandyControl.resources.dll" />
<file src="lib\net47\ko-KR\HandyControl.resources.dll" target="lib\net47\ko-KR\HandyControl.resources.dll" />
<file src="lib\net471\ko-KR\HandyControl.resources.dll" target="lib\net471\ko-KR\HandyControl.resources.dll" />
<file src="lib\net472\ko-KR\HandyControl.resources.dll" target="lib\net472\ko-KR\HandyControl.resources.dll" />
<file src="lib\net48\ko-KR\HandyControl.resources.dll" target="lib\net48\ko-KR\HandyControl.resources.dll" />
<file src="lib\net481\ko-KR\HandyControl.resources.dll" target="lib\net481\ko-KR\HandyControl.resources.dll" />
<file src="lib\net5.0\ko-KR\HandyControl.resources.dll" target="lib\net5.0\ko-KR\HandyControl.resources.dll" />
<file src="lib\net6.0\ko-KR\HandyControl.resources.dll" target="lib\net6.0\ko-KR\HandyControl.resources.dll" />
<file src="lib\net7.0\ko-KR\HandyControl.resources.dll" target="lib\net7.0\ko-KR\HandyControl.resources.dll" />
<file src="lib\netcoreapp3.0\ko-KR\HandyControl.resources.dll" target="lib\netcoreapp3.0\ko-KR\HandyControl.resources.dll" />
<file src="lib\netcoreapp3.1\ko-KR\HandyControl.resources.dll" target="lib\netcoreapp3.1\ko-KR\HandyControl.resources.dll" />
<file src="icon.png" target="icon.png" />
<file src="LICENSE" target="LICENSE" />
</files>
</package>
+59
View File
@@ -0,0 +1,59 @@
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
<metadata>
<id>HandyControl.Lang.pl</id>
<version>3.5.0</version>
<title>HandyOrg</title>
<authors>HandyOrg</authors>
<owners>HandyOrg</owners>
<requireLicenseAcceptance>true</requireLicenseAcceptance>
<license type="file">LICENSE</license>
<icon>icon.png</icon>
<projectUrl>https://github.com/HandyOrg/HandyControl</projectUrl>
<description>Contains some simple and commonly used WPF controls</description>
<releaseNotes>Changes are detailed at https://github.com/HandyOrg/HandyControl/releases</releaseNotes>
<copyright>Copyright © HandyOrg 2018-2023</copyright>
<tags>WPF C# Control</tags>
<repository type="git" url="https://github.com/HandyOrg/HandyControl" commit="e118ac98ccd1db28f25f66ba2da5c2e029a622a4" />
<dependencies>
<group targetFramework=".NETFramework4.0" />
<group targetFramework=".NETFramework4.5" />
<group targetFramework=".NETFramework4.5.1" />
<group targetFramework=".NETFramework4.5.2" />
<group targetFramework=".NETFramework4.6" />
<group targetFramework=".NETFramework4.6.1" />
<group targetFramework=".NETFramework4.6.2" />
<group targetFramework=".NETFramework4.7" />
<group targetFramework=".NETFramework4.7.1" />
<group targetFramework=".NETFramework4.7.2" />
<group targetFramework=".NETFramework4.8" />
<group targetFramework=".NETFramework4.8.1" />
<group targetFramework=".NETCoreApp3.0" />
<group targetFramework=".NETCoreApp3.1" />
<group targetFramework="net5.0" />
<group targetFramework="net6.0" />
<group targetFramework="net7.0" />
</dependencies>
</metadata>
<files>
<file src="lib\net40\pl\HandyControl.resources.dll" target="lib\net40\pl\HandyControl.resources.dll" />
<file src="lib\net45\pl\HandyControl.resources.dll" target="lib\net45\pl\HandyControl.resources.dll" />
<file src="lib\net451\pl\HandyControl.resources.dll" target="lib\net451\pl\HandyControl.resources.dll" />
<file src="lib\net452\pl\HandyControl.resources.dll" target="lib\net452\pl\HandyControl.resources.dll" />
<file src="lib\net46\pl\HandyControl.resources.dll" target="lib\net46\pl\HandyControl.resources.dll" />
<file src="lib\net461\pl\HandyControl.resources.dll" target="lib\net461\pl\HandyControl.resources.dll" />
<file src="lib\net462\pl\HandyControl.resources.dll" target="lib\net462\pl\HandyControl.resources.dll" />
<file src="lib\net47\pl\HandyControl.resources.dll" target="lib\net47\pl\HandyControl.resources.dll" />
<file src="lib\net471\pl\HandyControl.resources.dll" target="lib\net471\pl\HandyControl.resources.dll" />
<file src="lib\net472\pl\HandyControl.resources.dll" target="lib\net472\pl\HandyControl.resources.dll" />
<file src="lib\net48\pl\HandyControl.resources.dll" target="lib\net48\pl\HandyControl.resources.dll" />
<file src="lib\net481\pl\HandyControl.resources.dll" target="lib\net481\pl\HandyControl.resources.dll" />
<file src="lib\net5.0\pl\HandyControl.resources.dll" target="lib\net5.0\pl\HandyControl.resources.dll" />
<file src="lib\net6.0\pl\HandyControl.resources.dll" target="lib\net6.0\pl\HandyControl.resources.dll" />
<file src="lib\net7.0\pl\HandyControl.resources.dll" target="lib\net7.0\pl\HandyControl.resources.dll" />
<file src="lib\netcoreapp3.0\pl\HandyControl.resources.dll" target="lib\netcoreapp3.0\pl\HandyControl.resources.dll" />
<file src="lib\netcoreapp3.1\pl\HandyControl.resources.dll" target="lib\netcoreapp3.1\pl\HandyControl.resources.dll" />
<file src="icon.png" target="icon.png" />
<file src="LICENSE" target="LICENSE" />
</files>
</package>
+59
View File
@@ -0,0 +1,59 @@
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
<metadata>
<id>HandyControl.Lang.pt-BR</id>
<version>3.5.0</version>
<title>HandyOrg</title>
<authors>HandyOrg</authors>
<owners>HandyOrg</owners>
<requireLicenseAcceptance>true</requireLicenseAcceptance>
<license type="file">LICENSE</license>
<icon>icon.png</icon>
<projectUrl>https://github.com/HandyOrg/HandyControl</projectUrl>
<description>Contains some simple and commonly used WPF controls</description>
<releaseNotes>Changes are detailed at https://github.com/HandyOrg/HandyControl/releases</releaseNotes>
<copyright>Copyright © HandyOrg 2018-2023</copyright>
<tags>WPF C# Control</tags>
<repository type="git" url="https://github.com/HandyOrg/HandyControl" commit="e118ac98ccd1db28f25f66ba2da5c2e029a622a4" />
<dependencies>
<group targetFramework=".NETFramework4.0" />
<group targetFramework=".NETFramework4.5" />
<group targetFramework=".NETFramework4.5.1" />
<group targetFramework=".NETFramework4.5.2" />
<group targetFramework=".NETFramework4.6" />
<group targetFramework=".NETFramework4.6.1" />
<group targetFramework=".NETFramework4.6.2" />
<group targetFramework=".NETFramework4.7" />
<group targetFramework=".NETFramework4.7.1" />
<group targetFramework=".NETFramework4.7.2" />
<group targetFramework=".NETFramework4.8" />
<group targetFramework=".NETFramework4.8.1" />
<group targetFramework=".NETCoreApp3.0" />
<group targetFramework=".NETCoreApp3.1" />
<group targetFramework="net5.0" />
<group targetFramework="net6.0" />
<group targetFramework="net7.0" />
</dependencies>
</metadata>
<files>
<file src="lib\net40\pt-BR\HandyControl.resources.dll" target="lib\net40\pt-BR\HandyControl.resources.dll" />
<file src="lib\net45\pt-BR\HandyControl.resources.dll" target="lib\net45\pt-BR\HandyControl.resources.dll" />
<file src="lib\net451\pt-BR\HandyControl.resources.dll" target="lib\net451\pt-BR\HandyControl.resources.dll" />
<file src="lib\net452\pt-BR\HandyControl.resources.dll" target="lib\net452\pt-BR\HandyControl.resources.dll" />
<file src="lib\net46\pt-BR\HandyControl.resources.dll" target="lib\net46\pt-BR\HandyControl.resources.dll" />
<file src="lib\net461\pt-BR\HandyControl.resources.dll" target="lib\net461\pt-BR\HandyControl.resources.dll" />
<file src="lib\net462\pt-BR\HandyControl.resources.dll" target="lib\net462\pt-BR\HandyControl.resources.dll" />
<file src="lib\net47\pt-BR\HandyControl.resources.dll" target="lib\net47\pt-BR\HandyControl.resources.dll" />
<file src="lib\net471\pt-BR\HandyControl.resources.dll" target="lib\net471\pt-BR\HandyControl.resources.dll" />
<file src="lib\net472\pt-BR\HandyControl.resources.dll" target="lib\net472\pt-BR\HandyControl.resources.dll" />
<file src="lib\net48\pt-BR\HandyControl.resources.dll" target="lib\net48\pt-BR\HandyControl.resources.dll" />
<file src="lib\net481\pt-BR\HandyControl.resources.dll" target="lib\net481\pt-BR\HandyControl.resources.dll" />
<file src="lib\net5.0\pt-BR\HandyControl.resources.dll" target="lib\net5.0\pt-BR\HandyControl.resources.dll" />
<file src="lib\net6.0\pt-BR\HandyControl.resources.dll" target="lib\net6.0\pt-BR\HandyControl.resources.dll" />
<file src="lib\net7.0\pt-BR\HandyControl.resources.dll" target="lib\net7.0\pt-BR\HandyControl.resources.dll" />
<file src="lib\netcoreapp3.0\pt-BR\HandyControl.resources.dll" target="lib\netcoreapp3.0\pt-BR\HandyControl.resources.dll" />
<file src="lib\netcoreapp3.1\pt-BR\HandyControl.resources.dll" target="lib\netcoreapp3.1\pt-BR\HandyControl.resources.dll" />
<file src="icon.png" target="icon.png" />
<file src="LICENSE" target="LICENSE" />
</files>
</package>
+59
View File
@@ -0,0 +1,59 @@
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
<metadata>
<id>HandyControl.Lang.ru</id>
<version>3.5.0</version>
<title>HandyOrg</title>
<authors>HandyOrg</authors>
<owners>HandyOrg</owners>
<requireLicenseAcceptance>true</requireLicenseAcceptance>
<license type="file">LICENSE</license>
<icon>icon.png</icon>
<projectUrl>https://github.com/HandyOrg/HandyControl</projectUrl>
<description>Contains some simple and commonly used WPF controls</description>
<releaseNotes>Changes are detailed at https://github.com/HandyOrg/HandyControl/releases</releaseNotes>
<copyright>Copyright © HandyOrg 2018-2023</copyright>
<tags>WPF C# Control</tags>
<repository type="git" url="https://github.com/HandyOrg/HandyControl" commit="e118ac98ccd1db28f25f66ba2da5c2e029a622a4" />
<dependencies>
<group targetFramework=".NETFramework4.0" />
<group targetFramework=".NETFramework4.5" />
<group targetFramework=".NETFramework4.5.1" />
<group targetFramework=".NETFramework4.5.2" />
<group targetFramework=".NETFramework4.6" />
<group targetFramework=".NETFramework4.6.1" />
<group targetFramework=".NETFramework4.6.2" />
<group targetFramework=".NETFramework4.7" />
<group targetFramework=".NETFramework4.7.1" />
<group targetFramework=".NETFramework4.7.2" />
<group targetFramework=".NETFramework4.8" />
<group targetFramework=".NETFramework4.8.1" />
<group targetFramework=".NETCoreApp3.0" />
<group targetFramework=".NETCoreApp3.1" />
<group targetFramework="net5.0" />
<group targetFramework="net6.0" />
<group targetFramework="net7.0" />
</dependencies>
</metadata>
<files>
<file src="lib\net40\ru\HandyControl.resources.dll" target="lib\net40\ru\HandyControl.resources.dll" />
<file src="lib\net45\ru\HandyControl.resources.dll" target="lib\net45\ru\HandyControl.resources.dll" />
<file src="lib\net451\ru\HandyControl.resources.dll" target="lib\net451\ru\HandyControl.resources.dll" />
<file src="lib\net452\ru\HandyControl.resources.dll" target="lib\net452\ru\HandyControl.resources.dll" />
<file src="lib\net46\ru\HandyControl.resources.dll" target="lib\net46\ru\HandyControl.resources.dll" />
<file src="lib\net461\ru\HandyControl.resources.dll" target="lib\net461\ru\HandyControl.resources.dll" />
<file src="lib\net462\ru\HandyControl.resources.dll" target="lib\net462\ru\HandyControl.resources.dll" />
<file src="lib\net47\ru\HandyControl.resources.dll" target="lib\net47\ru\HandyControl.resources.dll" />
<file src="lib\net471\ru\HandyControl.resources.dll" target="lib\net471\ru\HandyControl.resources.dll" />
<file src="lib\net472\ru\HandyControl.resources.dll" target="lib\net472\ru\HandyControl.resources.dll" />
<file src="lib\net48\ru\HandyControl.resources.dll" target="lib\net48\ru\HandyControl.resources.dll" />
<file src="lib\net481\ru\HandyControl.resources.dll" target="lib\net481\ru\HandyControl.resources.dll" />
<file src="lib\net5.0\ru\HandyControl.resources.dll" target="lib\net5.0\ru\HandyControl.resources.dll" />
<file src="lib\net6.0\ru\HandyControl.resources.dll" target="lib\net6.0\ru\HandyControl.resources.dll" />
<file src="lib\net7.0\ru\HandyControl.resources.dll" target="lib\net7.0\ru\HandyControl.resources.dll" />
<file src="lib\netcoreapp3.0\ru\HandyControl.resources.dll" target="lib\netcoreapp3.0\ru\HandyControl.resources.dll" />
<file src="lib\netcoreapp3.1\ru\HandyControl.resources.dll" target="lib\netcoreapp3.1\ru\HandyControl.resources.dll" />
<file src="icon.png" target="icon.png" />
<file src="LICENSE" target="LICENSE" />
</files>
</package>
+59
View File
@@ -0,0 +1,59 @@
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
<metadata>
<id>HandyControl.Lang.{lang}</id>
<version>3.5.0</version>
<title>HandyOrg</title>
<authors>HandyOrg</authors>
<owners>HandyOrg</owners>
<requireLicenseAcceptance>true</requireLicenseAcceptance>
<license type="file">LICENSE</license>
<icon>icon.png</icon>
<projectUrl>https://github.com/HandyOrg/HandyControl</projectUrl>
<description>Contains some simple and commonly used WPF controls</description>
<releaseNotes>Changes are detailed at https://github.com/HandyOrg/HandyControl/releases</releaseNotes>
<copyright>Copyright © HandyOrg 2018-2023</copyright>
<tags>WPF C# Control</tags>
<repository type="git" url="https://github.com/HandyOrg/HandyControl" commit="e118ac98ccd1db28f25f66ba2da5c2e029a622a4" />
<dependencies>
<group targetFramework=".NETFramework4.0" />
<group targetFramework=".NETFramework4.5" />
<group targetFramework=".NETFramework4.5.1" />
<group targetFramework=".NETFramework4.5.2" />
<group targetFramework=".NETFramework4.6" />
<group targetFramework=".NETFramework4.6.1" />
<group targetFramework=".NETFramework4.6.2" />
<group targetFramework=".NETFramework4.7" />
<group targetFramework=".NETFramework4.7.1" />
<group targetFramework=".NETFramework4.7.2" />
<group targetFramework=".NETFramework4.8" />
<group targetFramework=".NETFramework4.8.1" />
<group targetFramework=".NETCoreApp3.0" />
<group targetFramework=".NETCoreApp3.1" />
<group targetFramework="net5.0" />
<group targetFramework="net6.0" />
<group targetFramework="net7.0" />
</dependencies>
</metadata>
<files>
<file src="lib\net40\{lang}\HandyControl.resources.dll" target="lib\net40\{lang}\HandyControl.resources.dll" />
<file src="lib\net45\{lang}\HandyControl.resources.dll" target="lib\net45\{lang}\HandyControl.resources.dll" />
<file src="lib\net451\{lang}\HandyControl.resources.dll" target="lib\net451\{lang}\HandyControl.resources.dll" />
<file src="lib\net452\{lang}\HandyControl.resources.dll" target="lib\net452\{lang}\HandyControl.resources.dll" />
<file src="lib\net46\{lang}\HandyControl.resources.dll" target="lib\net46\{lang}\HandyControl.resources.dll" />
<file src="lib\net461\{lang}\HandyControl.resources.dll" target="lib\net461\{lang}\HandyControl.resources.dll" />
<file src="lib\net462\{lang}\HandyControl.resources.dll" target="lib\net462\{lang}\HandyControl.resources.dll" />
<file src="lib\net47\{lang}\HandyControl.resources.dll" target="lib\net47\{lang}\HandyControl.resources.dll" />
<file src="lib\net471\{lang}\HandyControl.resources.dll" target="lib\net471\{lang}\HandyControl.resources.dll" />
<file src="lib\net472\{lang}\HandyControl.resources.dll" target="lib\net472\{lang}\HandyControl.resources.dll" />
<file src="lib\net48\{lang}\HandyControl.resources.dll" target="lib\net48\{lang}\HandyControl.resources.dll" />
<file src="lib\net481\{lang}\HandyControl.resources.dll" target="lib\net481\{lang}\HandyControl.resources.dll" />
<file src="lib\net5.0\{lang}\HandyControl.resources.dll" target="lib\net5.0\{lang}\HandyControl.resources.dll" />
<file src="lib\net6.0\{lang}\HandyControl.resources.dll" target="lib\net6.0\{lang}\HandyControl.resources.dll" />
<file src="lib\net7.0\{lang}\HandyControl.resources.dll" target="lib\net7.0\{lang}\HandyControl.resources.dll" />
<file src="lib\netcoreapp3.0\{lang}\HandyControl.resources.dll" target="lib\netcoreapp3.0\{lang}\HandyControl.resources.dll" />
<file src="lib\netcoreapp3.1\{lang}\HandyControl.resources.dll" target="lib\netcoreapp3.1\{lang}\HandyControl.resources.dll" />
<file src="icon.png" target="icon.png" />
<file src="LICENSE" target="LICENSE" />
</files>
</package>
+59
View File
@@ -0,0 +1,59 @@
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
<metadata>
<id>HandyControl.Lang.tr</id>
<version>3.5.0</version>
<title>HandyOrg</title>
<authors>HandyOrg</authors>
<owners>HandyOrg</owners>
<requireLicenseAcceptance>true</requireLicenseAcceptance>
<license type="file">LICENSE</license>
<icon>icon.png</icon>
<projectUrl>https://github.com/HandyOrg/HandyControl</projectUrl>
<description>Contains some simple and commonly used WPF controls</description>
<releaseNotes>Changes are detailed at https://github.com/HandyOrg/HandyControl/releases</releaseNotes>
<copyright>Copyright © HandyOrg 2018-2023</copyright>
<tags>WPF C# Control</tags>
<repository type="git" url="https://github.com/HandyOrg/HandyControl" commit="e118ac98ccd1db28f25f66ba2da5c2e029a622a4" />
<dependencies>
<group targetFramework=".NETFramework4.0" />
<group targetFramework=".NETFramework4.5" />
<group targetFramework=".NETFramework4.5.1" />
<group targetFramework=".NETFramework4.5.2" />
<group targetFramework=".NETFramework4.6" />
<group targetFramework=".NETFramework4.6.1" />
<group targetFramework=".NETFramework4.6.2" />
<group targetFramework=".NETFramework4.7" />
<group targetFramework=".NETFramework4.7.1" />
<group targetFramework=".NETFramework4.7.2" />
<group targetFramework=".NETFramework4.8" />
<group targetFramework=".NETFramework4.8.1" />
<group targetFramework=".NETCoreApp3.0" />
<group targetFramework=".NETCoreApp3.1" />
<group targetFramework="net5.0" />
<group targetFramework="net6.0" />
<group targetFramework="net7.0" />
</dependencies>
</metadata>
<files>
<file src="lib\net40\tr\HandyControl.resources.dll" target="lib\net40\tr\HandyControl.resources.dll" />
<file src="lib\net45\tr\HandyControl.resources.dll" target="lib\net45\tr\HandyControl.resources.dll" />
<file src="lib\net451\tr\HandyControl.resources.dll" target="lib\net451\tr\HandyControl.resources.dll" />
<file src="lib\net452\tr\HandyControl.resources.dll" target="lib\net452\tr\HandyControl.resources.dll" />
<file src="lib\net46\tr\HandyControl.resources.dll" target="lib\net46\tr\HandyControl.resources.dll" />
<file src="lib\net461\tr\HandyControl.resources.dll" target="lib\net461\tr\HandyControl.resources.dll" />
<file src="lib\net462\tr\HandyControl.resources.dll" target="lib\net462\tr\HandyControl.resources.dll" />
<file src="lib\net47\tr\HandyControl.resources.dll" target="lib\net47\tr\HandyControl.resources.dll" />
<file src="lib\net471\tr\HandyControl.resources.dll" target="lib\net471\tr\HandyControl.resources.dll" />
<file src="lib\net472\tr\HandyControl.resources.dll" target="lib\net472\tr\HandyControl.resources.dll" />
<file src="lib\net48\tr\HandyControl.resources.dll" target="lib\net48\tr\HandyControl.resources.dll" />
<file src="lib\net481\tr\HandyControl.resources.dll" target="lib\net481\tr\HandyControl.resources.dll" />
<file src="lib\net5.0\tr\HandyControl.resources.dll" target="lib\net5.0\tr\HandyControl.resources.dll" />
<file src="lib\net6.0\tr\HandyControl.resources.dll" target="lib\net6.0\tr\HandyControl.resources.dll" />
<file src="lib\net7.0\tr\HandyControl.resources.dll" target="lib\net7.0\tr\HandyControl.resources.dll" />
<file src="lib\netcoreapp3.0\tr\HandyControl.resources.dll" target="lib\netcoreapp3.0\tr\HandyControl.resources.dll" />
<file src="lib\netcoreapp3.1\tr\HandyControl.resources.dll" target="lib\netcoreapp3.1\tr\HandyControl.resources.dll" />
<file src="icon.png" target="icon.png" />
<file src="LICENSE" target="LICENSE" />
</files>
</package>
+33 -57
View File
@@ -16,63 +16,39 @@ Task("Build")
OutputDirectory = "lib/net40"
};
var settingsNet45 = new DotNetCoreBuildSettings
{
Configuration = "Release",
Framework = "net45",
OutputDirectory = "lib/net45"
};
var settingsNet462 = new DotNetCoreBuildSettings
{
Configuration = "Release",
Framework = "net462",
OutputDirectory = "lib/net462"
};
var settingsNet47 = new DotNetCoreBuildSettings
{
Configuration = "Release",
Framework = "net47",
OutputDirectory = "lib/net47"
};
var settingsNet48 = new DotNetCoreBuildSettings
{
Configuration = "Release",
Framework = "net48",
OutputDirectory = "lib/net48"
};
var settingsCore30 = new DotNetCoreBuildSettings
{
Configuration = "Release",
Framework = "netcoreapp3.0",
OutputDirectory = "lib/netcoreapp3.0"
};
var settingsCore31 = new DotNetCoreBuildSettings
{
Configuration = "Release",
Framework = "netcoreapp3.1",
OutputDirectory = "lib/netcoreapp3.1"
};
var settingsNet50 = new DotNetCoreBuildSettings
{
Configuration = "Release",
Framework = "net5.0-windows",
OutputDirectory = "lib/net5.0-windows"
};
DotNetCoreBuild("../src/Net_40/HandyControl_Net_40/HandyControl_Net_40.csproj", settingsNet40);
DotNetCoreBuild("../src/Net_GE45/HandyControl_Net_GE45/HandyControl_Net_GE45.csproj", settingsNet45);
DotNetCoreBuild("../src/Net_GE45/HandyControl_Net_GE45/HandyControl_Net_GE45.csproj", settingsNet462);
DotNetCoreBuild("../src/Net_GE45/HandyControl_Net_GE45/HandyControl_Net_GE45.csproj", settingsNet47);
DotNetCoreBuild("../src/Net_GE45/HandyControl_Net_GE45/HandyControl_Net_GE45.csproj", settingsNet48);
DotNetCoreBuild("../src/Net_GE45/HandyControl_Net_GE45/HandyControl_Net_GE45.csproj", settingsCore30);
DotNetCoreBuild("../src/Net_GE45/HandyControl_Net_GE45/HandyControl_Net_GE45.csproj", settingsCore31);
DotNetCoreBuild("../src/Net_GE45/HandyControl_Net_GE45/HandyControl_Net_GE45.csproj", settingsNet50);
var frameworkList = new List<string>
{
"net45",
"net451",
"net452",
"net46",
"net461",
"net462",
"net47",
"net471",
"net472",
"net48",
"net481",
"netcoreapp3.0",
"netcoreapp3.1",
"net5.0-windows",
"net6.0-windows",
"net7.0-windows"
};
foreach (var framework in frameworkList)
{
var settings = new DotNetCoreBuildSettings
{
Configuration = "Release",
Framework = framework,
OutputDirectory = $"lib/{framework.Split('-')[0]}"
};
DotNetCoreBuild("../src/Net_GE45/HandyControl_Net_GE45/HandyControl_Net_GE45.csproj", settings);
}
});
RunTarget(target);
RunTarget(target);
+49 -65
View File
@@ -2,108 +2,92 @@
<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
<metadata>
<id>HandyControl</id>
<version>3.0.0</version>
<version>3.5.0</version>
<title>HandyOrg</title>
<authors>HandyOrg</authors>
<owners>HandyOrg</owners>
<requireLicenseAcceptance>true</requireLicenseAcceptance>
<license type="file">LICENSE</license>
<icon>icon.png</icon>
<projectUrl>https://github.com/NaBian/HandyControl</projectUrl>
<description>Contains some commonly used simple WPF controls</description>
<projectUrl>https://github.com/HandyOrg/HandyControl</projectUrl>
<description>Contains some simple and commonly used WPF controls</description>
<releaseNotes>Changes are detailed at https://github.com/HandyOrg/HandyControl/releases</releaseNotes>
<copyright>Copyright © HandyOrg 2018-2020</copyright>
<copyright>Copyright © HandyOrg 2018-2023</copyright>
<tags>WPF C# Control</tags>
<repository type="git" url="https://github.com/HandyOrg/HandyControl" commit="35bbccd5b86bcedcfe16886857343e719feaf173" />
<repository type="git" url="https://github.com/HandyOrg/HandyControl" commit="e118ac98ccd1db28f25f66ba2da5c2e029a622a4" />
<dependencies>
<group targetFramework=".NETFramework4.0">
<dependency id="Microsoft.Windows.Shell" version="3.0.1" />
</group>
<group targetFramework=".NETFramework4.0" />
<group targetFramework=".NETFramework4.5" />
<group targetFramework=".NETFramework4.5.1" />
<group targetFramework=".NETFramework4.5.2" />
<group targetFramework=".NETFramework4.6" />
<group targetFramework=".NETFramework4.6.1" />
<group targetFramework=".NETFramework4.6.2" />
<group targetFramework=".NETFramework4.7" />
<group targetFramework=".NETFramework4.7.1" />
<group targetFramework=".NETFramework4.7.2" />
<group targetFramework=".NETFramework4.8" />
<group targetFramework=".NETFramework4.8.1" />
<group targetFramework=".NETCoreApp3.0" />
<group targetFramework=".NETCoreApp3.1" />
<group targetFramework="net5.0" />
<group targetFramework="net6.0" />
<group targetFramework="net7.0" />
</dependencies>
</metadata>
<files>
<file src="lib\net40\en\HandyControl.resources.dll" target="lib\net40\en\HandyControl.resources.dll" />
<file src="lib\net40\fa\HandyControl.resources.dll" target="lib\net40\fa\HandyControl.resources.dll" />
<file src="lib\net40\fr\HandyControl.resources.dll" target="lib\net40\fr\HandyControl.resources.dll" />
<file src="lib\net40\ko-KR\HandyControl.resources.dll" target="lib\net40\ko-KR\HandyControl.resources.dll" />
<file src="lib\net40\ru\HandyControl.resources.dll" target="lib\net40\ru\HandyControl.resources.dll" />
<file src="lib\net40\tr\HandyControl.resources.dll" target="lib\net40\tr\HandyControl.resources.dll" />
<file src="lib\net40\HandyControl.dll" target="lib\net40\HandyControl.dll" />
<file src="lib\net40\HandyControl.pdb" target="lib\net40\HandyControl.pdb" />
<file src="lib\net40\HandyControl.xml" target="lib\net40\HandyControl.xml" />
<file src="lib\net40\Microsoft.Windows.Shell.dll" target="lib\net40\Microsoft.Windows.Shell.dll" />
<file src="lib\net45\en\HandyControl.resources.dll" target="lib\net45\en\HandyControl.resources.dll" />
<file src="lib\net45\fa\HandyControl.resources.dll" target="lib\net45\fa\HandyControl.resources.dll" />
<file src="lib\net45\fr\HandyControl.resources.dll" target="lib\net45\fr\HandyControl.resources.dll" />
<file src="lib\net45\ko-KR\HandyControl.resources.dll" target="lib\net45\ko-KR\HandyControl.resources.dll" />
<file src="lib\net45\ru\HandyControl.resources.dll" target="lib\net45\ru\HandyControl.resources.dll" />
<file src="lib\net45\tr\HandyControl.resources.dll" target="lib\net45\tr\HandyControl.resources.dll" />
<file src="lib\net45\HandyControl.dll" target="lib\net45\HandyControl.dll" />
<file src="lib\net45\HandyControl.pdb" target="lib\net45\HandyControl.pdb" />
<file src="lib\net45\HandyControl.xml" target="lib\net45\HandyControl.xml" />
<file src="lib\net462\en\HandyControl.resources.dll" target="lib\net462\en\HandyControl.resources.dll" />
<file src="lib\net462\fa\HandyControl.resources.dll" target="lib\net462\fa\HandyControl.resources.dll" />
<file src="lib\net462\fr\HandyControl.resources.dll" target="lib\net462\fr\HandyControl.resources.dll" />
<file src="lib\net462\ko-KR\HandyControl.resources.dll" target="lib\net462\ko-KR\HandyControl.resources.dll" />
<file src="lib\net462\ru\HandyControl.resources.dll" target="lib\net462\ru\HandyControl.resources.dll" />
<file src="lib\net462\tr\HandyControl.resources.dll" target="lib\net462\tr\HandyControl.resources.dll" />
<file src="lib\net451\HandyControl.dll" target="lib\net451\HandyControl.dll" />
<file src="lib\net451\HandyControl.pdb" target="lib\net451\HandyControl.pdb" />
<file src="lib\net451\HandyControl.xml" target="lib\net451\HandyControl.xml" />
<file src="lib\net452\HandyControl.dll" target="lib\net452\HandyControl.dll" />
<file src="lib\net452\HandyControl.pdb" target="lib\net452\HandyControl.pdb" />
<file src="lib\net452\HandyControl.xml" target="lib\net452\HandyControl.xml" />
<file src="lib\net46\HandyControl.dll" target="lib\net46\HandyControl.dll" />
<file src="lib\net46\HandyControl.pdb" target="lib\net46\HandyControl.pdb" />
<file src="lib\net46\HandyControl.xml" target="lib\net46\HandyControl.xml" />
<file src="lib\net461\HandyControl.dll" target="lib\net461\HandyControl.dll" />
<file src="lib\net461\HandyControl.pdb" target="lib\net461\HandyControl.pdb" />
<file src="lib\net461\HandyControl.xml" target="lib\net461\HandyControl.xml" />
<file src="lib\net462\HandyControl.dll" target="lib\net462\HandyControl.dll" />
<file src="lib\net462\HandyControl.pdb" target="lib\net462\HandyControl.pdb" />
<file src="lib\net462\HandyControl.xml" target="lib\net462\HandyControl.xml" />
<file src="lib\net47\en\HandyControl.resources.dll" target="lib\net47\en\HandyControl.resources.dll" />
<file src="lib\net47\fa\HandyControl.resources.dll" target="lib\net47\fa\HandyControl.resources.dll" />
<file src="lib\net47\fr\HandyControl.resources.dll" target="lib\net47\fr\HandyControl.resources.dll" />
<file src="lib\net47\ko-KR\HandyControl.resources.dll" target="lib\net47\ko-KR\HandyControl.resources.dll" />
<file src="lib\net47\ru\HandyControl.resources.dll" target="lib\net47\ru\HandyControl.resources.dll" />
<file src="lib\net47\tr\HandyControl.resources.dll" target="lib\net47\tr\HandyControl.resources.dll" />
<file src="lib\net47\HandyControl.dll" target="lib\net47\HandyControl.dll" />
<file src="lib\net47\HandyControl.pdb" target="lib\net47\HandyControl.pdb" />
<file src="lib\net47\HandyControl.xml" target="lib\net47\HandyControl.xml" />
<file src="lib\net48\en\HandyControl.resources.dll" target="lib\net48\en\HandyControl.resources.dll" />
<file src="lib\net48\fa\HandyControl.resources.dll" target="lib\net48\fa\HandyControl.resources.dll" />
<file src="lib\net48\fr\HandyControl.resources.dll" target="lib\net48\fr\HandyControl.resources.dll" />
<file src="lib\net48\ko-KR\HandyControl.resources.dll" target="lib\net48\ko-KR\HandyControl.resources.dll" />
<file src="lib\net48\ru\HandyControl.resources.dll" target="lib\net48\ru\HandyControl.resources.dll" />
<file src="lib\net48\tr\HandyControl.resources.dll" target="lib\net48\tr\HandyControl.resources.dll" />
<file src="lib\net471\HandyControl.dll" target="lib\net471\HandyControl.dll" />
<file src="lib\net471\HandyControl.pdb" target="lib\net471\HandyControl.pdb" />
<file src="lib\net471\HandyControl.xml" target="lib\net471\HandyControl.xml" />
<file src="lib\net472\HandyControl.dll" target="lib\net472\HandyControl.dll" />
<file src="lib\net472\HandyControl.pdb" target="lib\net472\HandyControl.pdb" />
<file src="lib\net472\HandyControl.xml" target="lib\net472\HandyControl.xml" />
<file src="lib\net48\HandyControl.dll" target="lib\net48\HandyControl.dll" />
<file src="lib\net48\HandyControl.pdb" target="lib\net48\HandyControl.pdb" />
<file src="lib\net48\HandyControl.xml" target="lib\net48\HandyControl.xml" />
<file src="lib\net5.0-windows\ca-ES\HandyControl.resources.dll" target="lib\net5.0-windows\ca-ES\HandyControl.resources.dll" />
<file src="lib\net5.0-windows\en\HandyControl.resources.dll" target="lib\net5.0-windows\en\HandyControl.resources.dll" />
<file src="lib\net5.0-windows\fa\HandyControl.resources.dll" target="lib\net5.0-windows\fa\HandyControl.resources.dll" />
<file src="lib\net5.0-windows\fr\HandyControl.resources.dll" target="lib\net5.0-windows\fr\HandyControl.resources.dll" />
<file src="lib\net5.0-windows\ko-KR\HandyControl.resources.dll" target="lib\net5.0-windows\ko-KR\HandyControl.resources.dll" />
<file src="lib\net5.0-windows\pt-BR\HandyControl.resources.dll" target="lib\net5.0-windows\pt-BR\HandyControl.resources.dll" />
<file src="lib\net5.0-windows\ref\HandyControl.dll" target="lib\net5.0-windows\ref\HandyControl.dll" />
<file src="lib\net5.0-windows\ru\HandyControl.resources.dll" target="lib\net5.0-windows\ru\HandyControl.resources.dll" />
<file src="lib\net5.0-windows\tr\HandyControl.resources.dll" target="lib\net5.0-windows\tr\HandyControl.resources.dll" />
<file src="lib\net5.0-windows\HandyControl.deps.json" target="lib\net5.0-windows\HandyControl.deps.json" />
<file src="lib\net5.0-windows\HandyControl.dll" target="lib\net5.0-windows\HandyControl.dll" />
<file src="lib\net5.0-windows\HandyControl.pdb" target="lib\net5.0-windows\HandyControl.pdb" />
<file src="lib\net5.0-windows\HandyControl.xml" target="lib\net5.0-windows\HandyControl.xml" />
<file src="lib\netcoreapp3.0\en\HandyControl.resources.dll" target="lib\netcoreapp3.0\en\HandyControl.resources.dll" />
<file src="lib\netcoreapp3.0\fa\HandyControl.resources.dll" target="lib\netcoreapp3.0\fa\HandyControl.resources.dll" />
<file src="lib\netcoreapp3.0\fr\HandyControl.resources.dll" target="lib\netcoreapp3.0\fr\HandyControl.resources.dll" />
<file src="lib\netcoreapp3.0\ko-KR\HandyControl.resources.dll" target="lib\netcoreapp3.0\ko-KR\HandyControl.resources.dll" />
<file src="lib\netcoreapp3.0\ru\HandyControl.resources.dll" target="lib\netcoreapp3.0\ru\HandyControl.resources.dll" />
<file src="lib\netcoreapp3.0\tr\HandyControl.resources.dll" target="lib\netcoreapp3.0\tr\HandyControl.resources.dll" />
<file src="lib\net481\HandyControl.dll" target="lib\net481\HandyControl.dll" />
<file src="lib\net481\HandyControl.pdb" target="lib\net481\HandyControl.pdb" />
<file src="lib\net481\HandyControl.xml" target="lib\net481\HandyControl.xml" />
<file src="lib\net5.0\HandyControl.deps.json" target="lib\net5.0\HandyControl.deps.json" />
<file src="lib\net5.0\HandyControl.dll" target="lib\net5.0\HandyControl.dll" />
<file src="lib\net5.0\HandyControl.pdb" target="lib\net5.0\HandyControl.pdb" />
<file src="lib\net5.0\HandyControl.xml" target="lib\net5.0\HandyControl.xml" />
<file src="lib\net6.0\HandyControl.deps.json" target="lib\net6.0\HandyControl.deps.json" />
<file src="lib\net6.0\HandyControl.dll" target="lib\net6.0\HandyControl.dll" />
<file src="lib\net6.0\HandyControl.pdb" target="lib\net6.0\HandyControl.pdb" />
<file src="lib\net6.0\HandyControl.xml" target="lib\net6.0\HandyControl.xml" />
<file src="lib\net7.0\HandyControl.deps.json" target="lib\net7.0\HandyControl.deps.json" />
<file src="lib\net7.0\HandyControl.dll" target="lib\net7.0\HandyControl.dll" />
<file src="lib\net7.0\HandyControl.pdb" target="lib\net7.0\HandyControl.pdb" />
<file src="lib\net7.0\HandyControl.xml" target="lib\net7.0\HandyControl.xml" />
<file src="lib\netcoreapp3.0\HandyControl.deps.json" target="lib\netcoreapp3.0\HandyControl.deps.json" />
<file src="lib\netcoreapp3.0\HandyControl.dll" target="lib\netcoreapp3.0\HandyControl.dll" />
<file src="lib\netcoreapp3.0\HandyControl.pdb" target="lib\netcoreapp3.0\HandyControl.pdb" />
<file src="lib\netcoreapp3.0\HandyControl.xml" target="lib\netcoreapp3.0\HandyControl.xml" />
<file src="lib\netcoreapp3.1\en\HandyControl.resources.dll" target="lib\netcoreapp3.1\en\HandyControl.resources.dll" />
<file src="lib\netcoreapp3.1\fa\HandyControl.resources.dll" target="lib\netcoreapp3.1\fa\HandyControl.resources.dll" />
<file src="lib\netcoreapp3.1\fr\HandyControl.resources.dll" target="lib\netcoreapp3.1\fr\HandyControl.resources.dll" />
<file src="lib\netcoreapp3.1\ko-KR\HandyControl.resources.dll" target="lib\netcoreapp3.1\ko-KR\HandyControl.resources.dll" />
<file src="lib\netcoreapp3.1\ru\HandyControl.resources.dll" target="lib\netcoreapp3.1\ru\HandyControl.resources.dll" />
<file src="lib\netcoreapp3.1\tr\HandyControl.resources.dll" target="lib\netcoreapp3.1\tr\HandyControl.resources.dll" />
<file src="lib\netcoreapp3.1\HandyControl.deps.json" target="lib\netcoreapp3.1\HandyControl.deps.json" />
<file src="lib\netcoreapp3.1\HandyControl.dll" target="lib\netcoreapp3.1\HandyControl.dll" />
<file src="lib\netcoreapp3.1\HandyControl.pdb" target="lib\netcoreapp3.1\HandyControl.pdb" />
@@ -112,4 +96,4 @@
<file src="icon.png" target="icon.png" />
<file src="LICENSE" target="LICENSE" />
</files>
</package>
</package>
+15
View File
@@ -0,0 +1,15 @@
from pathlib import Path
def main():
with open('build.Lang.template.nuspec', 'r', encoding='utf-8') as template_file:
template_content = template_file.read()
resx_file_folder = Path('../src/Shared/HandyControl_Shared/Properties/Langs')
for lang in [path.stem.lstrip('Lang.') for path in resx_file_folder.glob('Lang.*.resx')]:
with open(f'build.Lang.{lang}.nuspec', 'w', encoding='utf-8') as nuspec_file:
nuspec_file.write(template_content.format(lang=lang))
if __name__ == '__main__':
main()
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

@@ -3,6 +3,7 @@
<ToolboxItems UIFramework="WPF" VSCategory="HandyControl" BlendCategory="HandyControl">
<Item Type="HandyControl.Controls.AnimationPath" />
<Item Type="HandyControl.Expression.Shapes.Arc" />
<Item Type="HandyControl.Controls.AxleCanvas" />
<Item Type="HandyControl.Controls.Badge" />
<Item Type="HandyControl.Controls.BlendEffectBox" />
<Item Type="HandyControl.Controls.ButtonGroup" />
@@ -28,6 +29,7 @@
<Item Type="HandyControl.Controls.DialogContainer" />
<Item Type="HandyControl.Controls.Divider" />
<Item Type="HandyControl.Controls.Drawer" />
<Item Type="HandyControl.Controls.Empty" />
<Item Type="HandyControl.Controls.FlexPanel" />
<Item Type="HandyControl.Controls.FlipClock" />
<Item Type="HandyControl.Controls.FloatingBlock" />
@@ -62,17 +64,20 @@
<Item Type="HandyControl.Controls.Shield" />
<Item Type="HandyControl.Controls.SideMenu" />
<Item Type="HandyControl.Controls.SimplePanel" />
<Item Type="HandyControl.Controls.SimpleStackPanel" />
<Item Type="HandyControl.Controls.SimpleText" />
<Item Type="HandyControl.Controls.SplitButton" />
<Item Type="HandyControl.Controls.StepBar" />
<Item Type="HandyControl.Controls.TabControl" />
<Item Type="HandyControl.Controls.Tag" />
<Item Type="HandyControl.Controls.TagContainer" />
<Item Type="HandyControl.Controls.TextBox" />
<Item Type="HandyControl.Controls.TimeBar" />
<Item Type="HandyControl.Controls.TimePicker" />
<Item Type="HandyControl.Controls.ToggleBlock" />
<Item Type="HandyControl.Controls.Transfer" />
<Item Type="HandyControl.Controls.TransitioningContentControl" />
<Item Type="HandyControl.Controls.UniformSpacingPanel" />
<Item Type="HandyControl.Controls.WaterfallPanel" />
<Item Type="HandyControl.Controls.Watermark" />
<Item Type="HandyControl.Controls.WaveProgressBar" />
@@ -41,4 +41,4 @@ public class BlurWindow : Window
</hc:BlurWindow>
```
![BlurWindow](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/BlurWindow.png)
![BlurWindow](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/BlurWindow.gif)
@@ -58,4 +58,4 @@ public class CirclePanel : Panel
</hc:CirclePanel>
```
![CirclePanel](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/CirclePanel.jpg)
![CirclePanel](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/CirclePanel.png)
@@ -40,4 +40,4 @@ public class CircleProgressBar : RangeBase
</StackPanel>
```
![CircleProgressBar](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/CircleProgressBar.png)
![CircleProgressBar](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/CircleProgressBar.gif)
@@ -5,8 +5,8 @@ title: NumericUpDown 数值选择控件
NumericUpDown 控件看起来像一对用户可以单击来调整值的箭头按钮和TextBox的组合,该控件显示并设置数值(Value)。 用户可以通过单击向上和向下箭头,或通过在控件的TextBox部分中键入一个数字来改变Value。
``` CS
[TemplatePart(Name = ElementTextBox, Type = typeof(DatePickerTextBox))]
public class DatePicker : System.Windows.Controls.DatePicker, IDataInput
[TemplatePart(Name = ElementTextBox, Type = typeof(TextBox))]
public class NumericUpDown : Control
```
# 创建NumericUpDown并设置Value
@@ -86,17 +86,11 @@ numericUpDown.Maximum = 1000;
| Minimum | 获取或设置最小允许值 |
| Increment | 获取或设置单击向上或向下按钮时,数字显示框(也称作 up-down 控件)递增或递减的值。 |
| DecimalPlaces |获取或设置NumericUpDown中要显示的十进制位数。 此属性不会影响 Value 属性。 |
| VerifyFunc | 获取或设置数据验证委托 |
| IsError | 获取或设置数据是否错误 |
| ErrorStr | 获取或设置错误提示 |
| TextType | 获取或设置文本类型 |
| ShowClearButton | 获取或设置是否显示清除按钮 |
# 方法
| 方法 | 描述 |
| ---------------- | ------------------ |
| VerifyData() | 验证数据 |
# 事件
@@ -28,4 +28,4 @@ public class ProgressButton : ToggleButton
</StackPanel>
```
![ProgressButton](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/ProgressButton.png)
![ProgressButton](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/ProgressButton.gif)
@@ -52,4 +52,4 @@ public class Rate : RegularItemsControl
</StackPanel>
```
![Rate](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/Rate.png)
![Rate](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/Rate.gif)
@@ -51,4 +51,4 @@ public class SplitButton : ButtonBase
</StackPanel>
```
![SplitButton](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/SplitButton.png)
![SplitButton](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/SplitButton.gif)
@@ -90,4 +90,4 @@ public class StepBar : ItemsControl
</Grid>
```
![StepBar](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/StepBar.png)
![StepBar](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/StepBar.gif)
@@ -41,4 +41,4 @@ public class Transfer : SimpleItemsControl
</hc:Transfer>
```
![Transfer](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/Transfer.png)
![Transfer](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/Transfer.gif)
@@ -12,5 +12,5 @@ title: Calendar 日历
{% code %}
<Calendar/>
{% endcode %}
![Calendar](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/Calendar.jpg)
![Calendar](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/Calendar.gif)
{% endnote %}
@@ -5,7 +5,7 @@ title: 原生控件
原生控件是指WPF框架自带的控件,除此之外,通过附加属性实现简单的功能扩展。
{% note warning %}
HandyControl中,几乎所有的原生控件都有默认实现的基样式(即定义样式的时候,没有显示给定Key值)。
HandyControl中,几乎所有的原生控件都有默认实现的基样式(即定义样式的时候,没有显式给定Key值)。
{% endnote %}
{% note warning %}
@@ -34,4 +34,4 @@ title: TextBlock 文本块
</StackPanel>
```
![TextBlockStyle](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/TextBlock.jpg)
![TextBlockStyle](https://raw.githubusercontent.com/HandyOrg/HandyOrgResource/master/HandyControl/Resources/TextBlock.png)
@@ -3,12 +3,14 @@ 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}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HandyControl_VS_Templates", "HandyControl_VS_Templates\HandyControl_VS_Templates.csproj", "{3F0F7B9E-C150-4FAA-9274-4F6F0A96B8CA}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WpfApp", "WpfApp\WpfApp.csproj", "{83C70EB1-3A3F-4812-B86C-C7D1936699EB}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WpfCoreApp", "WpfCoreApp\WpfCoreApp.csproj", "{2F6E9FB8-F579-40CF-A151-57F281F08E1B}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Project Templates", "Project Templates", "{26BC7FA1-50F7-46C7-84FE-0D8ABAC47E07}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -31,6 +33,10 @@ Global
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{83C70EB1-3A3F-4812-B86C-C7D1936699EB} = {26BC7FA1-50F7-46C7-84FE-0D8ABAC47E07}
{2F6E9FB8-F579-40CF-A151-57F281F08E1B} = {26BC7FA1-50F7-46C7-84FE-0D8ABAC47E07}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {A7F567D2-5FA3-4E17-A8A8-CDAFC217BFF5}
EndGlobalSection
@@ -13,10 +13,10 @@
<ProjectGuid>{3F0F7B9E-C150-4FAA-9274-4F6F0A96B8CA}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>HandyControl_VS2019</RootNamespace>
<AssemblyName>HandyControl_VS2019</AssemblyName>
<RootNamespace>HandyControl_VS_Templates</RootNamespace>
<AssemblyName>HandyControl VS Templates</AssemblyName>
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
<GeneratePkgDefFile>true</GeneratePkgDefFile>
<GeneratePkgDefFile>false</GeneratePkgDefFile>
<UseCodebase>true</UseCodebase>
<IncludeAssemblyInVSIXContainer>true</IncludeAssemblyInVSIXContainer>
<IncludeDebugSymbolsInVSIXContainer>false</IncludeDebugSymbolsInVSIXContainer>
@@ -46,7 +46,6 @@
</PropertyGroup>
<ItemGroup>
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="HandyControl_VS2019Package.cs" />
</ItemGroup>
<ItemGroup>
<None Include="source.extension.vsixmanifest">
@@ -57,8 +56,13 @@
<Reference Include="System" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.VisualStudio.SDK" Version="15.9.3" ExcludeAssets="runtime" />
<PackageReference Include="Microsoft.VSSDK.BuildTools" Version="16.0.2268" />
<PackageReference Include="Microsoft.VisualStudio.SDK" Version="17.0.31902.203" ExcludeAssets="runtime">
<IncludeAssets>compile; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.VSSDK.BuildTools" Version="17.0.5232">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
</ItemGroup>
<ItemGroup>
<Content Include="icon_100_100.png">
@@ -1,6 +1,6 @@
MIT License
Copyright (c) 2018-2020 HandyOrg
Copyright (c) 2018-2021 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
@@ -18,4 +18,4 @@ 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.
SOFTWARE.
@@ -1,14 +1,14 @@
using System.Reflection;
using System.Runtime.InteropServices;
[assembly: AssemblyTitle("HandyControl_VS2019")]
[assembly: AssemblyTitle("HandyControl VS Templates")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("HandyControl_VS2019")]
[assembly: AssemblyCopyright("Copyright © HandyOrg 2018-2020")]
[assembly: AssemblyProduct("HandyControl VS Templates")]
[assembly: AssemblyCopyright("Copyright © HandyOrg 2018-2021")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
[assembly: ComVisible(false)]
[assembly: AssemblyVersion("2.1.0")]
[assembly: AssemblyFileVersion("2.1.0")]
[assembly: AssemblyVersion("3.3.0")]
[assembly: AssemblyFileVersion("3.3.0")]
File renamed without changes.

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

File renamed without changes.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

@@ -1,8 +1,8 @@
<?xml version="1.0" ?>
<PackageManifest Version="2.0.0" xmlns="http://schemas.microsoft.com/developer/vsx-schema/2011" xmlns:d="http://schemas.microsoft.com/developer/vsx-schema-design/2011">
<Metadata>
<Identity Id="5949c79d-eb43-4033-8b7b-9349d34512c6" Version="2.5.0" Language="en-US" Publisher="HandyOrg" />
<DisplayName>HandyControl for VS2019</DisplayName>
<Identity Id="1B6729DF-3360-48C4-86A9-68A0591FBBEB" Version="3.3.0" Language="en-US" Publisher="HandyOrg" />
<DisplayName>HandyControl VS Templates</DisplayName>
<Description xml:space="preserve">This VSIX Project will help people initialize a HandyControl project.</Description>
<MoreInfo>https://handyorg.github.io/handycontrol</MoreInfo>
<License>License.txt</License>
@@ -13,18 +13,23 @@
<Tags>WPF C# Control</Tags>
</Metadata>
<Installation>
<InstallationTarget Id="Microsoft.VisualStudio.Community" Version="[16.0, 17.0)" />
<InstallationTarget Id="Microsoft.VisualStudio.Enterprise" Version="[16.0, 17.0)" />
<InstallationTarget Id="Microsoft.VisualStudio.Pro" Version="[16.0, 17.0)" />
<InstallationTarget Id="Microsoft.VisualStudio.Community" Version="[16.0, 18.0)">
<ProductArchitecture>x86</ProductArchitecture>
</InstallationTarget>
<InstallationTarget Id="Microsoft.VisualStudio.Enterprise" Version="[16.0, 18.0)">
<ProductArchitecture>x86</ProductArchitecture>
</InstallationTarget>
<InstallationTarget Id="Microsoft.VisualStudio.Pro" Version="[16.0, 18.0)">
<ProductArchitecture>x86</ProductArchitecture>
</InstallationTarget>
</Installation>
<Dependencies>
<Dependency Id="Microsoft.Framework.NDP" DisplayName="Microsoft .NET Framework" d:Source="Manual" Version="[4.0,)" />
</Dependencies>
<Prerequisites>
<Prerequisite Id="Microsoft.VisualStudio.Component.ManagedDesktop.Prerequisites" Version="[16.2.29003.222,17.0)" DisplayName=".NET 桌面开发工具" />
<Prerequisite Id="Microsoft.VisualStudio.Component.CoreEditor" Version="[16.0, 18.0)" DisplayName="Visual Studio core editor" />
</Prerequisites>
<Assets>
<Asset Type="Microsoft.VisualStudio.VsPackage" d:Source="Project" d:ProjectName="%CurrentProject%" Path="|%CurrentProject%;PkgdefProjectOutputGroup|" />
<Asset Type="Microsoft.VisualStudio.ProjectTemplate" d:Source="Project" d:ProjectName="WpfApp" d:TargetPath="|WpfApp;TemplateProjectOutputGroup|" Path="ProjectTemplates" d:VsixSubPath="ProjectTemplates" />
<Asset Type="Microsoft.VisualStudio.ProjectTemplate" d:Source="Project" d:ProjectName="WpfCoreApp" d:TargetPath="|WpfCoreApp;TemplateProjectOutputGroup|" Path="ProjectTemplates" d:VsixSubPath="ProjectTemplates" />
</Assets>
File renamed without changes.
@@ -7,7 +7,7 @@ using System.Windows;
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("$safeprojectname$")]
[assembly: AssemblyCopyright("Copyright © $username$ 2019")]
[assembly: AssemblyCopyright("Copyright © $username$ $year$")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
[assembly: ComVisible(false)]
@@ -8,9 +8,8 @@
<OutputType>WinExe</OutputType>
<RootNamespace>$safeprojectname$</RootNamespace>
<AssemblyName>$safeprojectname$</AssemblyName>
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
<TargetFrameworkVersion>v$targetframeworkversion$</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<WarningLevel>4</WarningLevel>
<Deterministic>true</Deterministic>
</PropertyGroup>
@@ -34,9 +33,9 @@
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="HandyControl, Version=2.5.0.1, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\HandyControl.2.5.0.1\lib\net47\HandyControl.dll</HintPath>
</Reference>
<PackageReference Include="HandyControl" Version="3.3" />
</ItemGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Xaml">
<RequiredTargetFramework>4.0</RequiredTargetFramework>
@@ -68,8 +67,5 @@
<SubType>Code</SubType>
</Compile>
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>
</Project>
@@ -1,14 +1,14 @@
using System.Reflection;
using System.Runtime.InteropServices;
[assembly: AssemblyTitle("HandyControl_VS2019_WpfApp")]
[assembly: AssemblyTitle("HandyControl VS Templates WpfApp")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("HandyControl_VS2019_WpfApp")]
[assembly: AssemblyCopyright("Copyright © HandyOrg 2018-2020")]
[assembly: AssemblyProduct("HandyControl VS Templates WpfApp")]
[assembly: AssemblyCopyright("Copyright © HandyOrg 2018-2021")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
[assembly: ComVisible(false)]
[assembly: AssemblyVersion("2.5.0")]
[assembly: AssemblyFileVersion("2.5.0")]
[assembly: AssemblyVersion("3.3.0")]
[assembly: AssemblyFileVersion("3.3.0")]
@@ -66,7 +66,6 @@
<VSTemplate Include="WpfApp.vstemplate" />
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
<None Include="ProjectTemplate.csproj" />
</ItemGroup>
<ItemGroup>
@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<VSTemplate Version="3.0.0" Type="Project" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" xmlns:sdk="http://schemas.microsoft.com/developer/vstemplate-sdkextension/2010">
<TemplateData>
<Name>HandyControl WPF App (.NET Framework)</Name>
<Description>Creates a HandyControl WPF App (.NET Framework)</Description>
<Icon>icon.ico</Icon>
<ProjectType>CSharp</ProjectType>
<RequiredFrameworkVersion>4.0</RequiredFrameworkVersion>
<CreateNewFolder>true</CreateNewFolder>
<DefaultName>HandyControlWpfApp</DefaultName>
<ProvideDefaultName>true</ProvideDefaultName>
<LanguageTag>csharp</LanguageTag>
<PlatformTag>windows</PlatformTag>
<ProjectTypeTag>desktop</ProjectTypeTag>
<ProjectTypeTag>HandyControl</ProjectTypeTag>
<LocationField>Enabled</LocationField>
<EnableLocationBrowseButton>true</EnableLocationBrowseButton>
<CreateInPlace>true</CreateInPlace>
</TemplateData>
<TemplateContent>
<Project File="ProjectTemplate.csproj" ReplaceParameters="true">
<ProjectItem ReplaceParameters="true" TargetFileName="Properties\AssemblyInfo.cs">AssemblyInfo.cs</ProjectItem>
<ProjectItem ReplaceParameters="true">App.xaml</ProjectItem>
<ProjectItem ReplaceParameters="true">App.xaml.cs</ProjectItem>
<ProjectItem ReplaceParameters="true">MainWindow.xaml</ProjectItem>
<ProjectItem ReplaceParameters="true">MainWindow.xaml.cs</ProjectItem>
</Project>
</TemplateContent>
</VSTemplate>
File renamed without changes.

Before

Width:  |  Height:  |  Size: 108 KiB

After

Width:  |  Height:  |  Size: 108 KiB

@@ -0,0 +1,3 @@
using System.Windows;
[assembly: ThemeInfo(ResourceDictionaryLocation.None, ResourceDictionaryLocation.SourceAssembly)]
@@ -0,0 +1,17 @@
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<UseWPF>true</UseWPF>
<Copyright>Copyright © $username$ $year$</Copyright>
<TargetFramework>netcoreapp3.0</TargetFramework>
<LangVersion>latest</LangVersion>
<EnableNETAnalyzers>true</EnableNETAnalyzers>
<EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="HandyControl" Version="3.3" />
</ItemGroup>
</Project>
@@ -0,0 +1,14 @@
using System.Reflection;
using System.Runtime.InteropServices;
[assembly: AssemblyTitle("HandyControl VS Templates WpfCoreApp")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("HandyControl VS Templates WpfCoreApp")]
[assembly: AssemblyCopyright("Copyright © HandyOrg 2018-2021")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
[assembly: ComVisible(false)]
[assembly: AssemblyVersion("3.3.0")]
[assembly: AssemblyFileVersion("3.3.0")]
@@ -60,6 +60,7 @@
<None Include="MainWindow.xaml.cs">
<DependentUpon>MainWindow.xaml</DependentUpon>
</None>
<None Include="AssemblyInfo.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<VSTemplate Version="3.0.0" Type="Project" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" xmlns:sdk="http://schemas.microsoft.com/developer/vstemplate-sdkextension/2010">
<TemplateData>
<Name>HandyControl WPF App (.NET Core)</Name>
<Description>Creates a HandyControl WPF App (.NET Core)</Description>
<Icon>icon.ico</Icon>
<ProjectType>CSharp</ProjectType>
<CreateNewFolder>true</CreateNewFolder>
<DefaultName>HandyControlWpfCoreApp</DefaultName>
<ProvideDefaultName>true</ProvideDefaultName>
<LanguageTag>csharp</LanguageTag>
<PlatformTag>windows</PlatformTag>
<ProjectTypeTag>desktop</ProjectTypeTag>
<ProjectTypeTag>HandyControl</ProjectTypeTag>
<LocationField>Enabled</LocationField>
<EnableLocationBrowseButton>true</EnableLocationBrowseButton>
<CreateInPlace>true</CreateInPlace>
</TemplateData>
<TemplateContent>
<Project File="ProjectTemplate.csproj" ReplaceParameters="true">
<ProjectItem ReplaceParameters="true" TargetFileName="Properties\AssemblyInfo.cs">AssemblyInfo.cs</ProjectItem>
<ProjectItem ReplaceParameters="true">App.xaml</ProjectItem>
<ProjectItem ReplaceParameters="true">App.xaml.cs</ProjectItem>
<ProjectItem ReplaceParameters="true">MainWindow.xaml</ProjectItem>
<ProjectItem ReplaceParameters="true">MainWindow.xaml.cs</ProjectItem>
</Project>
</TemplateContent>
</VSTemplate>
File renamed without changes.

Before

Width:  |  Height:  |  Size: 108 KiB

After

Width:  |  Height:  |  Size: 108 KiB

+7 -5
View File
@@ -1,11 +1,13 @@
<Project>
<Project>
<PropertyGroup>
<UseWPF>true</UseWPF>
<Version>3.0.0.0</Version>
<FileVersion>3.0.0.0</FileVersion>
<AssemblyVersion>3.0.0.0</AssemblyVersion>
<Version>3.5.0.0</Version>
<FileVersion>3.5.0.0</FileVersion>
<AssemblyVersion>3.5.0.0</AssemblyVersion>
<LangVersion>latest</LangVersion>
<Copyright>Copyright © HandyOrg 2018-2020</Copyright>
<Copyright>Copyright © HandyOrg 2018-2023</Copyright>
<Authors>HandyOrg</Authors>
<RepositoryUrl>https://github.com/HandyOrg/HandyControl</RepositoryUrl>
<PackageProjectUrl>https://handyorg.github.io/</PackageProjectUrl>
</PropertyGroup>
</Project>
+25 -2
View File
@@ -1,7 +1,7 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.28729.10
# Visual Studio Version 17
VisualStudioVersion = 17.1.32228.430
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HandyControl_Net_GE45", "Net_GE45\HandyControl_Net_GE45\HandyControl_Net_GE45.csproj", "{DC966E3D-BCFF-4652-98CF-070E5494749A}"
EndProject
@@ -25,16 +25,36 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HandyControlDemo_Code", "Sh
EndProject
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Microsoft.Windows.Shell", "Shared\Microsoft.Windows.Shell\Microsoft.Windows.Shell.shproj", "{BBE51380-8B21-49FF-9CFC-B29447A40999}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{7F52CFD3-EF6C-4D3C-A9D4-B25BF726382A}"
ProjectSection(SolutionItems) = preProject
Directory.Build.Props = Directory.Build.Props
EndProjectSection
EndProject
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Microsoft.Expression.Drawing", "Shared\Microsoft.Expression.Drawing\Microsoft.Expression.Drawing.shproj", "{E5DC7C25-6293-4660-B5FB-186496386B90}"
EndProject
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "System.Windows.Interactivity", "Shared\System.Windows.Interactivity\System.Windows.Interactivity.shproj", "{6F0C9CFF-2269-46A7-9664-478354C582A4}"
EndProject
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Microsoft.Expression.Interactions", "Shared\Microsoft.Expression.Interactions\Microsoft.Expression.Interactions.shproj", "{3531857C-28FC-4E0F-82D9-BFBB70740E04}"
EndProject
Global
GlobalSection(SharedMSBuildProjectFiles) = preSolution
Shared\HandyControl_Shared\HandyControl_Shared.projitems*{32204503-2ef0-4681-ae13-aa1feb6c658a}*SharedItemsImports = 5
Shared\Microsoft.Expression.Drawing\Microsoft.Expression.Drawing.projitems*{32204503-2ef0-4681-ae13-aa1feb6c658a}*SharedItemsImports = 5
Shared\Microsoft.Expression.Interactions\Microsoft.Expression.Interactions.projitems*{32204503-2ef0-4681-ae13-aa1feb6c658a}*SharedItemsImports = 5
Shared\Microsoft.Windows.Shell\Microsoft.Windows.Shell.projitems*{32204503-2ef0-4681-ae13-aa1feb6c658a}*SharedItemsImports = 5
Shared\System.Windows.Interactivity\System.Windows.Interactivity.projitems*{32204503-2ef0-4681-ae13-aa1feb6c658a}*SharedItemsImports = 5
Shared\Microsoft.Expression.Interactions\Microsoft.Expression.Interactions.projitems*{3531857c-28fc-4e0f-82d9-bfbb70740e04}*SharedItemsImports = 13
Shared\System.Windows.Interactivity\System.Windows.Interactivity.projitems*{6f0c9cff-2269-46a7-9664-478354c582a4}*SharedItemsImports = 13
Shared\HandyControlDemo_Shared\HandyControlDemo_Shared.projitems*{9a7b52e6-94bb-4e7e-bb6a-7cf6761b79a7}*SharedItemsImports = 5
Shared\HandyControl_Shared\HandyControl_Shared.projitems*{aac11083-faca-405d-9197-5c1212d65656}*SharedItemsImports = 13
Shared\Microsoft.Windows.Shell\Microsoft.Windows.Shell.projitems*{bbe51380-8b21-49ff-9cfc-b29447a40999}*SharedItemsImports = 13
Shared\HandyControlDemo_Shared\HandyControlDemo_Shared.projitems*{c4694269-c9b8-45d5-87f8-d0088c532510}*SharedItemsImports = 13
Shared\HandyControlDemo_Shared\HandyControlDemo_Shared.projitems*{d8ae88f8-c36b-4d10-a7f9-22ffcfba5231}*SharedItemsImports = 5
Shared\HandyControl_Shared\HandyControl_Shared.projitems*{dc966e3d-bcff-4652-98cf-070e5494749a}*SharedItemsImports = 5
Shared\Microsoft.Expression.Drawing\Microsoft.Expression.Drawing.projitems*{dc966e3d-bcff-4652-98cf-070e5494749a}*SharedItemsImports = 5
Shared\Microsoft.Expression.Interactions\Microsoft.Expression.Interactions.projitems*{dc966e3d-bcff-4652-98cf-070e5494749a}*SharedItemsImports = 5
Shared\System.Windows.Interactivity\System.Windows.Interactivity.projitems*{dc966e3d-bcff-4652-98cf-070e5494749a}*SharedItemsImports = 5
Shared\Microsoft.Expression.Drawing\Microsoft.Expression.Drawing.projitems*{e5dc7c25-6293-4660-b5fb-186496386b90}*SharedItemsImports = 13
EndGlobalSection
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -88,6 +108,9 @@ Global
{D8AE88F8-C36B-4D10-A7F9-22FFCFBA5231} = {35E3F9C0-8924-4536-BE09-F3761FDBF066}
{D8A4748C-0500-4F63-BC47-3506658C68F7} = {0938270D-E9F0-489B-AF9E-5C5AD7C69897}
{BBE51380-8B21-49FF-9CFC-B29447A40999} = {0938270D-E9F0-489B-AF9E-5C5AD7C69897}
{E5DC7C25-6293-4660-B5FB-186496386B90} = {0938270D-E9F0-489B-AF9E-5C5AD7C69897}
{6F0C9CFF-2269-46A7-9664-478354C582A4} = {0938270D-E9F0-489B-AF9E-5C5AD7C69897}
{3531857C-28FC-4E0F-82D9-BFBB70740E04} = {0938270D-E9F0-489B-AF9E-5C5AD7C69897}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {D4636382-1A18-4079-A3E7-054DD970F179}
@@ -6,13 +6,16 @@
<TargetFramework>net40</TargetFramework>
<ApplicationIcon>..\..\Shared\HandyControlDemo_Shared\Resources\Img\icon.ico</ApplicationIcon>
<NoWarn>0108;MSB3026;MSB3061</NoWarn>
<UseWPF>true</UseWPF>
</PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.CSharp" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="AvalonEdit" Version="6.0.1" />
<PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies" Version="1.0.3">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="MvvmLightLibs" Version="5.4.1.1" />
<PackageReference Include="Newtonsoft.Json" Version="11.0.2" />
</ItemGroup>
@@ -169,15 +172,24 @@
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\Flag\ca-Es.png">
<Link>Resources\Img\Flag\ca-Es.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\Flag\cs.png">
<Link>Resources\Img\Flag\cs.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\Flag\en.png">
<Link>Resources\Img\Flag\en.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\Flag\es.png">
<Link>Resources\Img\Flag\es.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\Flag\fa.png">
<Link>Resources\Img\Flag\fa.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\Flag\fr.png">
<Link>Resources\Img\Flag\fr.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\Flag\ja.png">
<Link>Resources\Img\Flag\ja.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\Flag\ko-KR.png">
<Link>Resources\Img\Flag\ko-KR.png</Link>
</Resource>
@@ -193,216 +205,15 @@
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\Flag\tr.png">
<Link>Resources\Img\Flag\tr.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\Slack.png">
<Link>Resources\Img\Slack.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\icon-white.ico">
<Link>Resources\Img\icon-white.ico</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\icon.ico">
<Link>Resources\Img\icon.ico</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\qq_group_1.jpg">
<Link>Resources\Img\qq_group_1.jpg</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\qq_group_2.jpg">
<Link>Resources\Img\qq_group_2.jpg</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\Animation_16x.png">
<Link>Resources\Img\LeftMainContent\Animation_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\BorderElement_16x.png">
<Link>Resources\Img\LeftMainContent\BorderElement_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\Brush_16x.png">
<Link>Resources\Img\LeftMainContent\Brush_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\Bubble_16xLG.png">
<Link>Resources\Img\LeftMainContent\Bubble_16xLG.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\ButtonClick_16x.png">
<Link>Resources\Img\LeftMainContent\ButtonClick_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\Calendar_16x.png">
<Link>Resources\Img\LeftMainContent\Calendar_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\Carousel_16x.png">
<Link>Resources\Img\LeftMainContent\Carousel_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\CheckBox_16x.png">
<Link>Resources\Img\LeftMainContent\CheckBox_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\CheckBoxList_16x.png">
<Link>Resources\Img\LeftMainContent\CheckBoxList_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\ColorPalette_16x.png">
<Link>Resources\Img\LeftMainContent\ColorPalette_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\ColorWheel_16x.png">
<Link>Resources\Img\LeftMainContent\ColorWheel_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\ComboBox_16x.png">
<Link>Resources\Img\LeftMainContent\ComboBox_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\ContextMenu_16x.png">
<Link>Resources\Img\LeftMainContent\ContextMenu_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\DataGrid_16x.png">
<Link>Resources\Img\LeftMainContent\DataGrid_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\DatePicker_16x.png">
<Link>Resources\Img\LeftMainContent\DatePicker_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\DetailDataView_16x.png">
<Link>Resources\Img\LeftMainContent\DetailDataView_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\Dialog_16x.png">
<Link>Resources\Img\LeftMainContent\Dialog_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\DotLarge_16x.png">
<Link>Resources\Img\LeftMainContent\DotLarge_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\Expander_16x.png">
<Link>Resources\Img\LeftMainContent\Expander_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\FlipVertical_16x.png">
<Link>Resources\Img\LeftMainContent\FlipVertical_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\Flow_16x.png">
<Link>Resources\Img\LeftMainContent\Flow_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\GoToTop_16x.png">
<Link>Resources\Img\LeftMainContent\GoToTop_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\GroupBox_16x.png">
<Link>Resources\Img\LeftMainContent\GroupBox_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\HoverMenu_16x.png">
<Link>Resources\Img\LeftMainContent\HoverMenu_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\Image_16x.png">
<Link>Resources\Img\LeftMainContent\Image_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\ImageBrowser_16x.png">
<Link>Resources\Img\LeftMainContent\ImageBrowser_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\Label_16x.png">
<Link>Resources\Img\LeftMainContent\Label_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\layout-FlexLayout-16.png">
<Link>Resources\Img\LeftMainContent\layout-FlexLayout-16.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\LinearCarousel_16x.png">
<Link>Resources\Img\LeftMainContent\LinearCarousel_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\ListBox_16x.png">
<Link>Resources\Img\LeftMainContent\ListBox_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\ListView_16x.png">
<Link>Resources\Img\LeftMainContent\ListView_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\Loading_Blue_16x.png">
<Link>Resources\Img\LeftMainContent\Loading_Blue_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\Message_16x.png">
<Link>Resources\Img\LeftMainContent\Message_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\NotificationHub_16x.png">
<Link>Resources\Img\LeftMainContent\NotificationHub_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\NumericListBox_16x.png">
<Link>Resources\Img\LeftMainContent\NumericListBox_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\Paginator_16x.png">
<Link>Resources\Img\LeftMainContent\Paginator_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\Panel_16x.png">
<Link>Resources\Img\LeftMainContent\Panel_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\PasswordBox_16x.png">
<Link>Resources\Img\LeftMainContent\PasswordBox_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\Path_16x.png">
<Link>Resources\Img\LeftMainContent\Path_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\ProgressBar_16x.png">
<Link>Resources\Img\LeftMainContent\ProgressBar_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\ProgressButton_16x.png">
<Link>Resources\Img\LeftMainContent\ProgressButton_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\RadioButton_16x.png">
<Link>Resources\Img\LeftMainContent\RadioButton_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\PropertyGridEditorPart_16x.png">
<Link>Resources\Img\LeftMainContent\PropertyGridEditorPart_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\RepeatButton_16x.png">
<Link>Resources\Img\LeftMainContent\RepeatButton_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\RichTextBox_16x.png">
<Link>Resources\Img\LeftMainContent\RichTextBox_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\ScrollBox_16x.png">
<Link>Resources\Img\LeftMainContent\ScrollBox_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\Search_16x.png">
<Link>Resources\Img\LeftMainContent\Search_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\Shield_16x.png">
<Link>Resources\Img\LeftMainContent\Shield_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\Slider_16x.png">
<Link>Resources\Img\LeftMainContent\Slider_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\SortAscending_grey_16x.png">
<Link>Resources\Img\LeftMainContent\SortAscending_grey_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\SplitterControl_16x.png">
<Link>Resources\Img\LeftMainContent\SplitterControl_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\Star.png">
<Link>Resources\Img\LeftMainContent\Star.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\TabPage_16x.png">
<Link>Resources\Img\LeftMainContent\TabPage_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\Tag_16x.png">
<Link>Resources\Img\LeftMainContent\Tag_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\TextBlock_16x.png">
<Link>Resources\Img\LeftMainContent\TextBlock_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\TextBox_16x.png">
<Link>Resources\Img\LeftMainContent\TextBox_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\Timeline_16x.png">
<Link>Resources\Img\LeftMainContent\Timeline_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\TimePicker_16x.png">
<Link>Resources\Img\LeftMainContent\TimePicker_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\Time_color_16x.png">
<Link>Resources\Img\LeftMainContent\Time_color_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\Toggle_16x.png">
<Link>Resources\Img\LeftMainContent\Toggle_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\ToolBar_16x.png">
<Link>Resources\Img\LeftMainContent\ToolBar_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\Transfer_16x.png">
<Link>Resources\Img\LeftMainContent\Transfer_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\TreeView_16x.png">
<Link>Resources\Img\LeftMainContent\TreeView_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\User_16x.png">
<Link>Resources\Img\LeftMainContent\User_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\WindowsForm_16x.png">
<Link>Resources\Img\LeftMainContent\WindowsForm_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\GridPane_16x.png">
<Link>Resources\Img\LeftMainContent\GridPane_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\under_construction.gif">
<Link>Resources\Img\under_construction.gif</Link>
</Resource>
@@ -421,90 +232,24 @@
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\DevOps\DevOps-TestPlans.png">
<Link>Resources\Img\DevOps\DevOps-TestPlans.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\MainMenuControl_16x.png">
<Link>Resources\Img\LeftMainContent\MainMenuControl_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\fabric-icons.ttf">
<Link>Resources\fabric-icons.ttf</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\xshd\CSharp-Dark.xshd">
<Link>Resources\xshd\CSharp-Dark.xshd</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\xshd\XML-Dark.xshd">
<Link>Resources\xshd\XML-Dark.xshd</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Registry.txt">
<Link>Resources\Registry.txt</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\brackets_Square_16xLG.png">
<Link>Resources\Img\LeftMainContent\brackets_Square_16xLG.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\ButtonGroup_16x.png">
<Link>Resources\Img\LeftMainContent\ButtonGroup_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\VSO_Card_16x.png">
<Link>Resources\Img\LeftMainContent\VSO_Card_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\ImageStack_16x.png">
<Link>Resources\Img\LeftMainContent\ImageStack_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\IncreaseHorizontalSpacing_16x.png">
<Link>Resources\Img\LeftMainContent\IncreaseHorizontalSpacing_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\Dynamic_16x.png">
<Link>Resources\Img\LeftMainContent\Dynamic_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\PolygonHexagon_16x.png">
<Link>Resources\Img\LeftMainContent\PolygonHexagon_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\HandyControl.png">
<Link>Resources\Img\LeftMainContent\HandyControl.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\Procedure_16x.png">
<Link>Resources\Img\LeftMainContent\Procedure_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\Dance.png">
<Link>Resources\Img\Dance.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\thumbs_up.png">
<Link>Resources\Img\LeftMainContent\thumbs_up.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\SplitButton_16x.png">
<Link>Resources\Img\LeftMainContent\SplitButton_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\DataGenerator_16x.png">
<Link>Resources\Img\LeftMainContent\DataGenerator_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\DottedSplitter_16x.png">
<Link>Resources\Img\LeftMainContent\DottedSplitter_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\PopupCursor_16x.png">
<Link>Resources\Img\LeftMainContent\PopupCursor_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\TransitioningContentControl_16x.png">
<Link>Resources\Img\LeftMainContent\TransitioningContentControl_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\View_Portrait_16x.png">
<Link>Resources\Img\LeftMainContent\View_Portrait_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\TransformRelative_16x.png">
<Link>Resources\Img\LeftMainContent\TransformRelative_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\Effects_16x.png">
<Link>Resources\Img\LeftMainContent\Effects_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\Ellipsis_16x.png">
<Link>Resources\Img\LeftMainContent\Ellipsis_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\WPFFlowDocument_16x.png">
<Link>Resources\Img\LeftMainContent\WPFFlowDocument_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\OutlinedRectangleTool_16x.png">
<Link>Resources\Img\LeftMainContent\OutlinedRectangleTool_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\frame_16xLG.png">
<Link>Resources\Img\LeftMainContent\frame_16xLG.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\cloud.png">
<Link>Resources\Img\cloud.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\WindowScreenshot_16x.png">
<Link>Resources\Img\LeftMainContent\WindowScreenshot_16x.png</Link>
</Resource>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="..\..\Shared\HandyControlDemo_Shared\Properties\Langs\Lang.tr.resx">
@@ -513,15 +258,24 @@
<EmbeddedResource Include="..\..\Shared\HandyControlDemo_Shared\Properties\Langs\Lang.ca-ES.resx">
<Link>Properties\Langs\Lang.ca-ES.resx</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\Shared\HandyControlDemo_Shared\Properties\Langs\Lang.cs.resx">
<Link>Properties\Langs\Lang.cs.resx</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\Shared\HandyControlDemo_Shared\Properties\Langs\Lang.en.resx">
<Link>Properties\Langs\Lang.en.resx</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\Shared\HandyControlDemo_Shared\Properties\Langs\Lang.es.resx">
<Link>Properties\Langs\Lang.es.resx</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\Shared\HandyControlDemo_Shared\Properties\Langs\Lang.fa.resx">
<Link>Properties\Langs\Lang.fa.resx</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\Shared\HandyControlDemo_Shared\Properties\Langs\Lang.fr.resx">
<Link>Properties\Langs\Lang.fr.resx</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\Shared\HandyControlDemo_Shared\Properties\Langs\Lang.ja.resx">
<Link>Properties\Langs\Lang.ja.resx</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\Shared\HandyControlDemo_Shared\Properties\Langs\Lang.ko-KR.resx">
<Link>Properties\Langs\Lang.ko-KR.resx</Link>
</EmbeddedResource>
@@ -567,8 +321,10 @@
<PostBuildEvent>
if not exist Langs md Langs
rd /s /q Langs\en
rd /s /q Langs\es
rd /s /q Langs\fa
rd /s /q Langs\fr
rd /s /q Langs\ja
rd /s /q Langs\ko-KR
rd /s /q Langs\pt-BR
rd /s /q Langs\pl
@@ -576,8 +332,10 @@
rd /s /q Langs\tr
rd /s /q Langs\ca-Es
move en Langs
move es Langs
move fa Langs
move fr Langs
move ja Langs
move ko-KR Langs
move pt-BR Langs
move pl Langs
@@ -585,10 +343,6 @@
move tr Langs
move ca-Es Langs
</PostBuildEvent>
<Copyright>Copyright © HandyOrg 2018-2021</Copyright>
<AssemblyVersion>3.1.0.0</AssemblyVersion>
<FileVersion>3.1.0.0</FileVersion>
<Version>3.1.0.0</Version>
<RepositoryUrl>https://github.com/HandyOrg/HandyControl</RepositoryUrl>
<ApplicationManifest>..\..\Shared\HandyControlDemo_Shared\app.manifest</ApplicationManifest>
</PropertyGroup>
</Project>
@@ -3,18 +3,15 @@
<AssemblyName>HandyControl</AssemblyName>
<RootNamespace>HandyControl</RootNamespace>
<TargetFramework>net40</TargetFramework>
<Description>Contains some commonly used simple WPF controls</Description>
<Description>Contains some simple and commonly used WPF controls</Description>
<PackageId>HandyControl</PackageId>
<IncludeSymbols>true</IncludeSymbols>
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
<NoWarn>0067;0649;1591;0108;1717</NoWarn>
<UseWPF>true</UseWPF>
<AssemblyOriginatorKeyFile>..\..\Shared\HandyControl_Shared\key.snk</AssemblyOriginatorKeyFile>
<Copyright>Copyright © HandyOrg 2018-2021</Copyright>
<AssemblyVersion>3.1.0.0</AssemblyVersion>
<FileVersion>3.1.0.0</FileVersion>
<Version>3.1.0.0</Version>
<RepositoryUrl>https://github.com/HandyOrg/HandyControl</RepositoryUrl>
<PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance>
<PackageTags>WPF C# Control</PackageTags>
<PackageReleaseNotes>Changes are detailed at https://github.com/HandyOrg/HandyControl/releases</PackageReleaseNotes>
<RepositoryType>git</RepositoryType>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release-Net40|AnyCPU' ">
<SignAssembly>true</SignAssembly>
@@ -41,8 +38,14 @@
<EmbeddedResource Include="..\..\Shared\HandyControl_Shared\Properties\Langs\Lang.ca-ES.resx">
<Link>Properties\Langs\Lang.ca-ES.resx</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\Shared\HandyControl_Shared\Properties\Langs\Lang.cs.resx">
<Link>Properties\Langs\Lang.cs.resx</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\Shared\HandyControl_Shared\Properties\Langs\Lang.en.resx">
<Link>Properties\Langs\Lang.en.resx</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\Shared\HandyControl_Shared\Properties\Langs\Lang.es.resx">
<Link>Properties\Langs\Lang.es.resx</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\Shared\HandyControl_Shared\Properties\Langs\Lang.fa.resx">
<Link>Properties\Langs\Lang.fa.resx</Link>
@@ -50,6 +53,9 @@
<EmbeddedResource Include="..\..\Shared\HandyControl_Shared\Properties\Langs\Lang.fr.resx">
<Link>Properties\Langs\Lang.fr.resx</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\Shared\HandyControl_Shared\Properties\Langs\Lang.ja.resx">
<Link>Properties\Langs\Lang.ja.resx</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\Shared\HandyControl_Shared\Properties\Langs\Lang.ko-KR.resx">
<Link>Properties\Langs\Lang.ko-KR.resx</Link>
</EmbeddedResource>
@@ -80,6 +86,9 @@
</ItemGroup>
<Import Project="..\..\Shared\HandyControl_Shared\HandyControl_Shared.projitems" Label="Shared" />
<Import Project="..\..\Shared\Microsoft.Windows.Shell\Microsoft.Windows.Shell.projitems" Label="Shared" />
<Import Project="..\..\Shared\Microsoft.Expression.Drawing\Microsoft.Expression.Drawing.projitems" Label="Shared" />
<Import Project="..\..\Shared\System.Windows.Interactivity\System.Windows.Interactivity.projitems" Label="Shared" />
<Import Project="..\..\Shared\Microsoft.Expression.Interactions\Microsoft.Expression.Interactions.projitems" Label="Shared" />
<ItemGroup>
<Resource Include="..\..\Shared\HandyControl_Shared\Resources\dropper.cur">
<Link>Resources\dropper.cur</Link>
@@ -192,6 +201,10 @@
<None Include="Themes\Styles\Window.xaml">
<SubType>Designer</SubType>
</None>
<PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies" Version="1.0.3">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<Page Include="Themes\Theme.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
@@ -2,37 +2,30 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:hc="clr-namespace:HandyControl.Controls"
xmlns:ex="clr-namespace:HandyControl.Tools.Extension"
xmlns:themes="clr-namespace:HandyControl.Themes"
xmlns:system="clr-namespace:System;assembly=mscorlib"
xmlns:interactivity="clr-namespace:HandyControl.Interactivity"
xmlns:langs="clr-namespace:HandyControl.Properties.Langs">
<ResourceDictionary.MergedDictionaries>
<themes:SharedResourceDictionary Source="pack://application:,,,/HandyControl;component/Themes/Styles/Tag.xaml"/>
<themes:SharedResourceDictionary Source="pack://application:,,,/HandyControl;component/Themes/Styles/Base/ComboBoxBaseStyle.xaml"/>
</ResourceDictionary.MergedDictionaries>
<Style x:Key="Tag4CheckComboBoxStyle" BasedOn="{StaticResource TagBaseStyle}" TargetType="hc:Tag">
<Setter Property="Margin" Value="0,3,3,0"/>
<Setter Property="Padding" Value="6,3,4,3"/>
<Setter Property="Height" Value="Auto"/>
<Setter Property="Padding" Value="6,2,4,2" />
<Setter Property="Height" Value="Auto" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="hc:Tag">
<Border CornerRadius="{Binding Path=(hc:BorderElement.CornerRadius),RelativeSource={RelativeSource TemplatedParent}}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Padding="{TemplateBinding Padding}" SnapsToDevicePixels="true">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
<Button Focusable="False" Name="ButtonClose" Visibility="{TemplateBinding ShowCloseButton,Converter={StaticResource Boolean2VisibilityConverter}}" Command="interactivity:ControlCommands.Close" Margin="10,0,0,0" Width="16" Height="16" Padding="0,4" Grid.Column="1" Style="{StaticResource ButtonIcon}" hc:IconElement.Geometry="{StaticResource CloseGeometry}" Foreground="{TemplateBinding Foreground}"/>
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" />
<Button Focusable="False" Name="ButtonClose" Visibility="{TemplateBinding ShowCloseButton,Converter={StaticResource Boolean2VisibilityConverter}}" Command="interactivity:ControlCommands.Close" Margin="10,0,0,0" Width="16" Height="16" Padding="0,4" Grid.Column="1" Style="{StaticResource ButtonIcon}" hc:IconElement.Geometry="{StaticResource CloseGeometry}" Foreground="{TemplateBinding Foreground}" />
</Grid>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True" SourceName="ButtonClose">
<Setter Property="hc:IconElement.Geometry" Value="{StaticResource DeleteFillCircleGeometry}" TargetName="ButtonClose"/>
<Setter Property="Padding" Value="0" TargetName="ButtonClose"/>
<Setter Property="hc:IconElement.Geometry" Value="{StaticResource DeleteFillCircleGeometry}" TargetName="ButtonClose" />
<Setter Property="Padding" Value="0" TargetName="ButtonClose" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
@@ -41,24 +34,26 @@
</Style>
<Style x:Key="CheckComboBoxItemBaseStyle" TargetType="hc:CheckComboBoxItem">
<Setter Property="SnapsToDevicePixels" Value="True"/>
<Setter Property="Padding" Value="{StaticResource DefaultControlPadding}"/>
<Setter Property="Background" Value="Transparent"/>
<Setter Property="BorderBrush" Value="Transparent"/>
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="MinHeight" Value="{StaticResource DefaultControlHeight}"/>
<Setter Property="FocusVisualStyle" Value="{x:Null}"/>
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
<Setter Property="VerticalContentAlignment" Value="Center" />
<Setter Property="SnapsToDevicePixels" Value="True" />
<Setter Property="Padding" Value="{StaticResource DefaultControlPadding}" />
<Setter Property="Background" Value="Transparent" />
<Setter Property="BorderBrush" Value="Transparent" />
<Setter Property="BorderThickness" Value="0" />
<Setter Property="MinHeight" Value="{StaticResource DefaultControlHeight}" />
<Setter Property="FocusVisualStyle" Value="{x:Null}" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="hc:CheckComboBoxItem">
<Border x:Name="Bd" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Padding="{Binding Padding,RelativeSource={RelativeSource TemplatedParent},Converter={StaticResource ThicknessSplitConverter},ConverterParameter='1,0,1,0'}" SnapsToDevicePixels="true">
<Border x:Name="Bd" CornerRadius="{Binding Path=(hc:BorderElement.CornerRadius),RelativeSource={RelativeSource TemplatedParent}}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Padding="{Binding Padding,RelativeSource={RelativeSource TemplatedParent},Converter={StaticResource ThicknessSplitConverter},ConverterParameter='1,0,1,0'}" SnapsToDevicePixels="true">
<CheckBox Foreground="{TemplateBinding Foreground}" HorizontalAlignment="Stretch" MinHeight="{TemplateBinding MinHeight}" FocusVisualStyle="{x:Null}" IsChecked="{Binding IsSelected,RelativeSource={RelativeSource TemplatedParent},Mode=TwoWay}">
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" />
</CheckBox>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" TargetName="Bd" Value="{DynamicResource SecondaryRegionBrush}"/>
<Setter Property="Background" TargetName="Bd" Value="{DynamicResource SecondaryRegionBrush}" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
@@ -69,448 +64,435 @@
<ControlTemplate x:Key="CheckComboBoxTemplate" TargetType="hc:CheckComboBox">
<Grid x:Name="templateRoot" SnapsToDevicePixels="true">
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition Width="30"/>
<ColumnDefinition />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Popup x:Name="PART_Popup" PlacementTarget="{Binding ElementName=toggleButton}" StaysOpen="False" IsOpen="{Binding IsDropDownOpen,RelativeSource={RelativeSource TemplatedParent},Mode=TwoWay}" AllowsTransparency="true" Grid.ColumnSpan="2" PopupAnimation="{StaticResource {x:Static SystemParameters.ComboBoxPopupAnimationKey}}" Placement="Bottom">
<Border CornerRadius="{Binding Path=(hc:BorderElement.CornerRadius),RelativeSource={RelativeSource TemplatedParent}}" x:Name="dropDownBorder" MaxHeight="{TemplateBinding MaxDropDownHeight}" BorderBrush="{DynamicResource BorderBrush}" BorderThickness="1" Background="{DynamicResource RegionBrush}">
<hc:ToggleBlock IsChecked="{Binding HasItems,RelativeSource={RelativeSource TemplatedParent},Mode=OneWay}" VerticalContentAlignment="Stretch" HorizontalContentAlignment="Stretch">
<hc:ToggleBlock.CheckedContent>
<Grid Margin="0,4" ClipToBounds="False">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition/>
</Grid.RowDefinitions>
<hc:CheckComboBoxItem x:Name="PART_SelectAll" Style="{TemplateBinding ItemContainerStyle}" IsEnabled="{TemplateBinding ShowSelectAllButton}" Visibility="{Binding ShowSelectAllButton,RelativeSource={RelativeSource TemplatedParent},Converter={StaticResource Boolean2VisibilityConverter}}" HorizontalContentAlignment="Stretch" Content="{ex:Lang Key={x:Static langs:LangKeys.All}}"/>
<ScrollViewer x:Name="DropDownScrollViewer" Grid.Row="1">
<ItemsPresenter x:Name="ItemsPresenter" KeyboardNavigation.DirectionalNavigation="Contained" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
</ScrollViewer>
</Grid>
</hc:ToggleBlock.CheckedContent>
<hc:ToggleBlock.UnCheckedContent>
<hc:Empty/>
</hc:ToggleBlock.UnCheckedContent>
</hc:ToggleBlock>
</Border>
</Popup>
<ToggleButton Grid.Column="0" x:Name="toggleButton" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Grid.ColumnSpan="2" IsChecked="{Binding IsDropDownOpen,RelativeSource={RelativeSource TemplatedParent},Mode=TwoWay}" Style="{StaticResource ComboBoxToggleButton}"/>
<Border Grid.Column="0" Margin="-1,1">
<WrapPanel Name="PART_Panel" Margin="5,0,5,3"/>
<Border x:Name="border" Grid.ColumnSpan="2" CornerRadius="{Binding Path=(hc:BorderElement.CornerRadius),RelativeSource={RelativeSource TemplatedParent}}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" />
<ToggleButton ClickMode="Release" BorderThickness="0" Grid.Column="1" IsChecked="{Binding IsDropDownOpen, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}" Height="Auto" Width="Auto" HorizontalContentAlignment="Left" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" hc:IconElement.Width="14" Style="{StaticResource ToggleButtonIconTransparent}" Padding="{Binding Padding, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource ThicknessSplitConverter}, ConverterParameter='0,0,1,0'}" hc:IconSwitchElement.Geometry="{StaticResource DownGeometry}" hc:IconSwitchElement.GeometrySelected="{StaticResource UpGeometry}" Foreground="{TemplateBinding BorderBrush}" Focusable="False" />
<Border Grid.Column="0" Margin="-4 0">
<hc:UniformSpacingPanel x:Name="PART_Panel" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" Spacing="{TemplateBinding TagSpacing}" ChildWrapping="Wrap" ItemVerticalAlignment="Center" />
</Border>
<Popup x:Name="PART_Popup" StaysOpen="False" PlacementTarget="{Binding ElementName=border}" IsOpen="{Binding IsDropDownOpen,RelativeSource={RelativeSource TemplatedParent},Mode=TwoWay}" AllowsTransparency="true" Grid.ColumnSpan="2" PopupAnimation="{StaticResource {x:Static SystemParameters.ComboBoxPopupAnimationKey}}" Placement="Bottom">
<Decorator Margin="8 0">
<Border Effect="{StaticResource EffectShadow2}" BorderThickness="0,1,0,0" Margin="0,0,0,8" CornerRadius="{Binding Path=(hc:BorderElement.CornerRadius),RelativeSource={RelativeSource TemplatedParent}}" x:Name="dropDownBorder" MinWidth="{Binding ActualWidth, ElementName=border}" MaxHeight="{TemplateBinding MaxDropDownHeight}" BorderBrush="{DynamicResource BorderBrush}" Background="{DynamicResource RegionBrush}">
<hc:ToggleBlock IsChecked="{Binding HasItems,RelativeSource={RelativeSource TemplatedParent},Mode=OneWay}" VerticalContentAlignment="Stretch" HorizontalContentAlignment="Stretch">
<hc:ToggleBlock.CheckedContent>
<Grid Margin="2" ClipToBounds="False">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition />
</Grid.RowDefinitions>
<hc:CheckComboBoxItem x:Name="PART_SelectAll" Style="{TemplateBinding ItemContainerStyle}" IsEnabled="{TemplateBinding ShowSelectAllButton}" Visibility="{Binding ShowSelectAllButton,RelativeSource={RelativeSource TemplatedParent},Converter={StaticResource Boolean2VisibilityConverter}}" HorizontalContentAlignment="Stretch" Content="{ex:Lang Key={x:Static langs:LangKeys.All}}" />
<ScrollViewer x:Name="DropDownScrollViewer" Grid.Row="1">
<ItemsPresenter x:Name="ItemsPresenter" KeyboardNavigation.DirectionalNavigation="Contained" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
</ScrollViewer>
</Grid>
</hc:ToggleBlock.CheckedContent>
<hc:ToggleBlock.UnCheckedContent>
<hc:Empty />
</hc:ToggleBlock.UnCheckedContent>
</hc:ToggleBlock>
</Border>
</Decorator>
</Popup>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="HasItems" Value="false">
<Setter Property="Height" TargetName="dropDownBorder" Value="95"/>
<Setter Property="Height" TargetName="dropDownBorder" Value="95" />
</Trigger>
<Trigger Property="hc:DropDownElement.ConsistentWidth" Value="True">
<Setter Property="MaxWidth" TargetName="dropDownBorder" Value="{Binding ActualWidth, ElementName=toggleButton}"/>
<Setter Property="MinWidth" TargetName="dropDownBorder" Value="{Binding ActualWidth, ElementName=toggleButton}"/>
<Setter Property="MaxWidth" TargetName="dropDownBorder" Value="{Binding ActualWidth, ElementName=border}" />
<Setter Property="MinWidth" TargetName="dropDownBorder" Value="{Binding ActualWidth, ElementName=border}" />
</Trigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsMouseOver" Value="true" SourceName="toggleButton"/>
<Condition Property="IsOpen" Value="false" SourceName="PART_Popup"/>
<Condition Property="IsMouseOver" Value="true" />
<Condition Property="IsOpen" Value="false" SourceName="PART_Popup" />
</MultiTrigger.Conditions>
<Setter Property="BorderBrush" Value="{DynamicResource SecondaryBorderBrush}"/>
<Setter Property="BorderBrush" Value="{DynamicResource SecondaryBorderBrush}" />
</MultiTrigger>
<Trigger Property="IsOpen" Value="True" SourceName="PART_Popup">
<Setter Property="BorderBrush" Value="{DynamicResource PrimaryBrush}"/>
<Setter Property="BorderBrush" Value="{DynamicResource PrimaryBrush}" />
</Trigger>
<Trigger Property="IsFocused" Value="True">
<Setter Property="BorderBrush" Value="{DynamicResource PrimaryBrush}"/>
<Setter Property="BorderBrush" Value="{DynamicResource PrimaryBrush}" />
</Trigger>
<Trigger Property="IsEnabled" Value="false">
<Setter Property="Opacity" Value="0.4" TargetName="toggleButton"/>
<Setter Property="Opacity" Value="0.4" TargetName="PART_Panel"/>
<Setter Property="Opacity" Value="0.4" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
<Style x:Key="CheckComboBoxBaseStyle" TargetType="hc:CheckComboBox">
<Setter Property="TagStyle" Value="{StaticResource Tag4CheckComboBoxStyle}"/>
<Setter Property="SelectionMode" Value="Multiple"/>
<Setter Property="FocusVisualStyle" Value="{x:Null}"/>
<Setter Property="Background" Value="{DynamicResource RegionBrush}"/>
<Setter Property="ItemContainerStyle" Value="{StaticResource CheckComboBoxItemBaseStyle}"/>
<Setter Property="hc:BorderElement.CornerRadius" Value="{StaticResource DefaultCornerRadius}"/>
<Setter Property="BorderBrush" Value="{DynamicResource BorderBrush}"/>
<Setter Property="Foreground" Value="{DynamicResource PrimaryTextBrush}"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Auto"/>
<Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto"/>
<Setter Property="MinHeight" Value="{StaticResource DefaultControlHeight}"/>
<Setter Property="ScrollViewer.CanContentScroll" Value="true"/>
<Setter Property="ScrollViewer.PanningMode" Value="Both"/>
<Setter Property="Stylus.IsFlicksEnabled" Value="False"/>
<Setter Property="Padding" Value="{StaticResource DefaultInputPadding}"/>
<Setter Property="Template" Value="{StaticResource CheckComboBoxTemplate}"/>
<Setter Property="VerticalContentAlignment" Value="Center"/>
<Style x:Key="CheckComboBoxBaseStyle" BasedOn="{StaticResource InputElementBaseStyle}" TargetType="hc:CheckComboBox">
<Setter Property="TagStyle" Value="{StaticResource Tag4CheckComboBoxStyle}" />
<Setter Property="TagSpacing" Value="4"/>
<Setter Property="SelectionMode" Value="Multiple" />
<Setter Property="ItemContainerStyle" Value="{StaticResource CheckComboBoxItemBaseStyle}" />
<Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Auto" />
<Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto" />
<Setter Property="ScrollViewer.CanContentScroll" Value="true" />
<Setter Property="ScrollViewer.PanningMode" Value="Both" />
<Setter Property="Stylus.IsFlicksEnabled" Value="False" />
<Setter Property="Padding" Value="8,4" />
<Setter Property="Template" Value="{StaticResource CheckComboBoxTemplate}" />
</Style>
<ControlTemplate x:Key="CheckComboBoxExtendTopTemplate" TargetType="hc:CheckComboBox">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition MinHeight="{Binding Path=(hc:InfoElement.MinContentHeight),RelativeSource={RelativeSource TemplatedParent}}" Height="{Binding Path=(hc:InfoElement.ContentHeight),RelativeSource={RelativeSource TemplatedParent}}"/>
<RowDefinition Height="Auto" />
<RowDefinition MinHeight="{Binding Path=(hc:InfoElement.MinContentHeight),RelativeSource={RelativeSource TemplatedParent}}" Height="{Binding Path=(hc:InfoElement.ContentHeight),RelativeSource={RelativeSource TemplatedParent},Converter={StaticResource Double2GridLengthConverter}}" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition Width="30"/>
</Grid.ColumnDefinitions>
<StackPanel Grid.ColumnSpan="2" Visibility="{Binding Path=(hc:InfoElement.Title),RelativeSource={RelativeSource TemplatedParent},Converter={StaticResource String2VisibilityConverter}}" Orientation="Horizontal" Margin="{TemplateBinding Padding}">
<TextBlock Margin="1,0,0,0" Text="{Binding Path=(hc:InfoElement.Title),RelativeSource={RelativeSource TemplatedParent}}"/>
<ContentPresenter TextElement.Foreground="{DynamicResource DangerBrush}" Margin="4,0,0,0" Content="{Binding Path=(hc:InfoElement.Symbol),RelativeSource={RelativeSource TemplatedParent}}" Visibility="{Binding Path=(hc:InfoElement.Necessary),RelativeSource={RelativeSource TemplatedParent},Converter={StaticResource Boolean2VisibilityConverter}}"/>
</StackPanel>
<Popup x:Name="PART_Popup" Grid.Row="1" Grid.Column="0" PlacementTarget="{Binding ElementName=toggleButton}" AllowsTransparency="true" Grid.ColumnSpan="2" StaysOpen="False" IsOpen="{Binding IsDropDownOpen,RelativeSource={RelativeSource TemplatedParent},Mode=TwoWay}" Margin="1" PopupAnimation="{StaticResource {x:Static SystemParameters.ComboBoxPopupAnimationKey}}" Placement="Bottom">
<Border CornerRadius="{Binding Path=(hc:BorderElement.CornerRadius),RelativeSource={RelativeSource TemplatedParent}}" x:Name="dropDownBorder" MaxHeight="{TemplateBinding MaxDropDownHeight}" BorderBrush="{DynamicResource BorderBrush}" BorderThickness="1" Background="{DynamicResource RegionBrush}">
<hc:ToggleBlock IsChecked="{Binding HasItems,RelativeSource={RelativeSource TemplatedParent},Mode=OneWay}" VerticalContentAlignment="Stretch" HorizontalContentAlignment="Stretch">
<hc:ToggleBlock.CheckedContent>
<Grid Margin="0,4" ClipToBounds="False">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition/>
</Grid.RowDefinitions>
<hc:CheckComboBoxItem x:Name="PART_SelectAll" Style="{TemplateBinding ItemContainerStyle}" IsEnabled="{TemplateBinding ShowSelectAllButton}" Visibility="{Binding ShowSelectAllButton,RelativeSource={RelativeSource TemplatedParent},Converter={StaticResource Boolean2VisibilityConverter}}" HorizontalContentAlignment="Stretch" Content="{ex:Lang Key={x:Static langs:LangKeys.All}}"/>
<ScrollViewer x:Name="DropDownScrollViewer" Grid.Row="1">
<ItemsPresenter x:Name="ItemsPresenter" KeyboardNavigation.DirectionalNavigation="Contained" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
</ScrollViewer>
</Grid>
</hc:ToggleBlock.CheckedContent>
<hc:ToggleBlock.UnCheckedContent>
<hc:Empty/>
</hc:ToggleBlock.UnCheckedContent>
</hc:ToggleBlock>
<DockPanel LastChildFill="True" Visibility="{Binding Path=(hc:InfoElement.Title),RelativeSource={RelativeSource TemplatedParent},Converter={StaticResource String2VisibilityConverter}}" HorizontalAlignment="{Binding Path=(hc:TitleElement.HorizontalAlignment),RelativeSource={RelativeSource TemplatedParent}}" Margin="{Binding Path=(hc:TitleElement.MarginOnTheTop),RelativeSource={RelativeSource TemplatedParent}}">
<ContentPresenter DockPanel.Dock="Right" TextElement.Foreground="{DynamicResource DangerBrush}" Margin="4,0,0,0" Content="{Binding Path=(hc:InfoElement.Symbol),RelativeSource={RelativeSource TemplatedParent}}" Visibility="{Binding Path=(hc:InfoElement.Necessary),RelativeSource={RelativeSource TemplatedParent},Converter={StaticResource Boolean2VisibilityConverter}}" />
<TextBlock hc:TextBlockAttach.AutoTooltip="True" TextWrapping="NoWrap" TextTrimming="CharacterEllipsis" Text="{Binding Path=(hc:InfoElement.Title),RelativeSource={RelativeSource TemplatedParent}}" />
</DockPanel>
<Grid x:Name="contentPanel" Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Border x:Name="border" Grid.ColumnSpan="2" CornerRadius="{Binding Path=(hc:BorderElement.CornerRadius),RelativeSource={RelativeSource TemplatedParent}}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" />
<TextBlock Grid.Column="0" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" Margin="{TemplateBinding Padding}" Visibility="{Binding SelectedItem,RelativeSource={RelativeSource AncestorType=hc:CheckComboBox},Converter={StaticResource Object2VisibilityReConverter}}" HorizontalAlignment="Stretch" Style="{StaticResource TextBlockDefaultThiLight}" Text="{Binding Path=(hc:InfoElement.Placeholder),RelativeSource={RelativeSource TemplatedParent}}" />
<ToggleButton ClickMode="Release" BorderThickness="0" Grid.Column="1" IsChecked="{Binding IsDropDownOpen, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}" Height="Auto" Width="Auto" HorizontalContentAlignment="Left" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" hc:IconElement.Width="14" Style="{StaticResource ToggleButtonIconTransparent}" Padding="{Binding Padding, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource ThicknessSplitConverter}, ConverterParameter='0,0,1,0'}" hc:IconSwitchElement.Geometry="{StaticResource DownGeometry}" hc:IconSwitchElement.GeometrySelected="{StaticResource UpGeometry}" Foreground="{TemplateBinding BorderBrush}" Focusable="False" />
<Border Grid.Column="0" Margin="-4 0">
<hc:UniformSpacingPanel x:Name="PART_Panel" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" Spacing="{TemplateBinding TagSpacing}" ChildWrapping="Wrap" ItemVerticalAlignment="Center" />
</Border>
</Popup>
<ToggleButton Grid.Row="1" VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" Padding="{TemplateBinding Padding}" Content="{Binding Path=(hc:InfoElement.Placeholder),RelativeSource={RelativeSource TemplatedParent}}" Grid.Column="0" x:Name="toggleButton" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Grid.ColumnSpan="2" IsChecked="{Binding IsDropDownOpen, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}" Style="{StaticResource ComboBoxWatermarkToggleButton}"/>
<Border Grid.Row="1" Grid.Column="0" Margin="1,0">
<WrapPanel Name="PART_Panel" Margin="3,1,3,4"/>
</Border>
<Popup x:Name="PART_Popup" StaysOpen="False" PlacementTarget="{Binding ElementName=border}" AllowsTransparency="true" IsOpen="{Binding IsDropDownOpen,RelativeSource={RelativeSource TemplatedParent},Mode=TwoWay}" Margin="1" PopupAnimation="{StaticResource {x:Static SystemParameters.ComboBoxPopupAnimationKey}}" Placement="Bottom">
<Decorator Margin="8 0">
<Border Effect="{StaticResource EffectShadow2}" BorderThickness="0,1,0,0" Margin="0,0,0,8" CornerRadius="{Binding Path=(hc:BorderElement.CornerRadius),RelativeSource={RelativeSource TemplatedParent}}" x:Name="dropDownBorder" MinWidth="{Binding ActualWidth, ElementName=border}" MaxHeight="{TemplateBinding MaxDropDownHeight}" BorderBrush="{DynamicResource BorderBrush}" Background="{DynamicResource RegionBrush}">
<hc:ToggleBlock IsChecked="{Binding HasItems,RelativeSource={RelativeSource TemplatedParent},Mode=OneWay}" VerticalContentAlignment="Stretch" HorizontalContentAlignment="Stretch">
<hc:ToggleBlock.CheckedContent>
<Grid Margin="2" ClipToBounds="False">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition />
</Grid.RowDefinitions>
<hc:CheckComboBoxItem x:Name="PART_SelectAll" Style="{TemplateBinding ItemContainerStyle}" IsEnabled="{TemplateBinding ShowSelectAllButton}" Visibility="{Binding ShowSelectAllButton,RelativeSource={RelativeSource TemplatedParent},Converter={StaticResource Boolean2VisibilityConverter}}" HorizontalContentAlignment="Stretch" Content="{ex:Lang Key={x:Static langs:LangKeys.All}}" />
<ScrollViewer x:Name="DropDownScrollViewer" Grid.Row="1">
<ItemsPresenter x:Name="ItemsPresenter" KeyboardNavigation.DirectionalNavigation="Contained" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
</ScrollViewer>
</Grid>
</hc:ToggleBlock.CheckedContent>
<hc:ToggleBlock.UnCheckedContent>
<hc:Empty />
</hc:ToggleBlock.UnCheckedContent>
</hc:ToggleBlock>
</Border>
</Decorator>
</Popup>
</Grid>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="HasItems" Value="false">
<Setter Property="Height" TargetName="dropDownBorder" Value="95"/>
<Setter Property="Height" TargetName="dropDownBorder" Value="95" />
</Trigger>
<Trigger Property="hc:DropDownElement.ConsistentWidth" Value="True">
<Setter Property="MaxWidth" TargetName="dropDownBorder" Value="{Binding ActualWidth, ElementName=toggleButton}"/>
<Setter Property="MinWidth" TargetName="dropDownBorder" Value="{Binding ActualWidth, ElementName=toggleButton}"/>
<Setter Property="MaxWidth" TargetName="dropDownBorder" Value="{Binding ActualWidth, ElementName=border}" />
<Setter Property="MinWidth" TargetName="dropDownBorder" Value="{Binding ActualWidth, ElementName=border}" />
</Trigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsMouseOver" Value="true" SourceName="toggleButton"/>
<Condition Property="IsOpen" Value="false" SourceName="PART_Popup"/>
<Condition Property="IsMouseOver" Value="true" SourceName="contentPanel" />
<Condition Property="IsOpen" Value="false" SourceName="PART_Popup" />
</MultiTrigger.Conditions>
<Setter Property="BorderBrush" Value="{DynamicResource SecondaryBorderBrush}"/>
<Setter Property="BorderBrush" Value="{DynamicResource SecondaryBorderBrush}" />
</MultiTrigger>
<Trigger Property="IsOpen" Value="True" SourceName="PART_Popup">
<Setter Property="BorderBrush" Value="{DynamicResource PrimaryBrush}"/>
<Setter Property="BorderBrush" Value="{DynamicResource PrimaryBrush}" />
</Trigger>
<Trigger Property="IsFocused" Value="True">
<Setter Property="BorderBrush" Value="{DynamicResource PrimaryBrush}"/>
<Setter Property="BorderBrush" Value="{DynamicResource PrimaryBrush}" />
</Trigger>
<Trigger Property="IsEnabled" Value="false">
<Setter Property="Opacity" Value="0.4" TargetName="toggleButton"/>
<Setter Property="Opacity" Value="0.4" TargetName="PART_Panel"/>
<Setter Property="Opacity" Value="0.4" TargetName="contentPanel" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
<ControlTemplate x:Key="CheckComboBoxExtendLeftTemplate" TargetType="hc:CheckComboBox">
<Grid x:Name="templateRoot" SnapsToDevicePixels="true" MinHeight="{Binding Path=(hc:InfoElement.MinContentHeight),RelativeSource={RelativeSource TemplatedParent}}" Height="{Binding Path=(hc:InfoElement.ContentHeight),RelativeSource={RelativeSource TemplatedParent},Converter={StaticResource Double2GridLengthConverter}}">
<Grid x:Name="templateRoot" SnapsToDevicePixels="true" MinHeight="{Binding Path=(hc:InfoElement.MinContentHeight),RelativeSource={RelativeSource TemplatedParent}}" Height="{Binding Path=(hc:InfoElement.ContentHeight),RelativeSource={RelativeSource TemplatedParent}}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="{Binding Path=(hc:InfoElement.TitleWidth),RelativeSource={RelativeSource TemplatedParent}}"/>
<ColumnDefinition/>
<ColumnDefinition Width="30"/>
<ColumnDefinition Width="{Binding Path=(hc:InfoElement.TitleWidth),RelativeSource={RelativeSource TemplatedParent}}" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<StackPanel VerticalAlignment="{TemplateBinding VerticalContentAlignment}" Margin="0,7,6,7" Visibility="{Binding Path=(hc:InfoElement.Title),RelativeSource={RelativeSource TemplatedParent},Converter={StaticResource String2VisibilityConverter}}" Orientation="Horizontal">
<TextBlock Text="{Binding Path=(hc:InfoElement.Title),RelativeSource={RelativeSource TemplatedParent}}"/>
<ContentPresenter TextElement.Foreground="{DynamicResource DangerBrush}" Margin="4,0,0,0" Content="{Binding Path=(hc:InfoElement.Symbol),RelativeSource={RelativeSource TemplatedParent}}" Visibility="{Binding Path=(hc:InfoElement.Necessary),RelativeSource={RelativeSource TemplatedParent},Converter={StaticResource Boolean2VisibilityConverter}}"/>
</StackPanel>
<Popup Grid.Column="1" x:Name="PART_Popup" PlacementTarget="{Binding ElementName=toggleButton}" AllowsTransparency="true" Grid.ColumnSpan="2" StaysOpen="False" IsOpen="{Binding IsDropDownOpen, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}" Margin="1" PopupAnimation="{StaticResource {x:Static SystemParameters.ComboBoxPopupAnimationKey}}" Placement="Bottom">
<Border CornerRadius="{Binding Path=(hc:BorderElement.CornerRadius),RelativeSource={RelativeSource TemplatedParent}}" x:Name="dropDownBorder" MaxHeight="{TemplateBinding MaxDropDownHeight}" BorderBrush="{DynamicResource BorderBrush}" BorderThickness="1" Background="{DynamicResource RegionBrush}">
<hc:ToggleBlock IsChecked="{Binding HasItems,RelativeSource={RelativeSource TemplatedParent},Mode=OneWay}" VerticalContentAlignment="Stretch" HorizontalContentAlignment="Stretch">
<hc:ToggleBlock.CheckedContent>
<Grid Margin="0,4" ClipToBounds="False">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition/>
</Grid.RowDefinitions>
<hc:CheckComboBoxItem x:Name="PART_SelectAll" Style="{TemplateBinding ItemContainerStyle}" IsEnabled="{TemplateBinding ShowSelectAllButton}" Visibility="{Binding ShowSelectAllButton,RelativeSource={RelativeSource TemplatedParent},Converter={StaticResource Boolean2VisibilityConverter}}" HorizontalContentAlignment="Stretch" Content="{ex:Lang Key={x:Static langs:LangKeys.All}}"/>
<ScrollViewer x:Name="DropDownScrollViewer" Grid.Row="1">
<ItemsPresenter x:Name="ItemsPresenter" KeyboardNavigation.DirectionalNavigation="Contained" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
</ScrollViewer>
</Grid>
</hc:ToggleBlock.CheckedContent>
<hc:ToggleBlock.UnCheckedContent>
<hc:Empty/>
</hc:ToggleBlock.UnCheckedContent>
</hc:ToggleBlock>
<DockPanel LastChildFill="True" Visibility="{Binding Path=(hc:InfoElement.Title),RelativeSource={RelativeSource TemplatedParent},Converter={StaticResource String2VisibilityConverter}}" HorizontalAlignment="{Binding Path=(hc:TitleElement.HorizontalAlignment),RelativeSource={RelativeSource TemplatedParent}}" VerticalAlignment="{Binding Path=(hc:TitleElement.VerticalAlignment),RelativeSource={RelativeSource TemplatedParent}}" Margin="{Binding Path=(hc:TitleElement.MarginOnTheLeft),RelativeSource={RelativeSource TemplatedParent}}">
<ContentPresenter DockPanel.Dock="Right" TextElement.Foreground="{DynamicResource DangerBrush}" Margin="4,0,0,0" Content="{Binding Path=(hc:InfoElement.Symbol),RelativeSource={RelativeSource TemplatedParent}}" Visibility="{Binding Path=(hc:InfoElement.Necessary),RelativeSource={RelativeSource TemplatedParent},Converter={StaticResource Boolean2VisibilityConverter}}" />
<TextBlock hc:TextBlockAttach.AutoTooltip="True" TextWrapping="NoWrap" TextTrimming="CharacterEllipsis" Text="{Binding Path=(hc:InfoElement.Title),RelativeSource={RelativeSource TemplatedParent}}" />
</DockPanel>
<Grid x:Name="contentPanel" Grid.Column="1">
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Border x:Name="border" Grid.ColumnSpan="2" CornerRadius="{Binding Path=(hc:BorderElement.CornerRadius),RelativeSource={RelativeSource TemplatedParent}}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" />
<TextBlock Grid.Column="0" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" Margin="{TemplateBinding Padding}" Visibility="{Binding SelectedItem,RelativeSource={RelativeSource AncestorType=hc:CheckComboBox},Converter={StaticResource Object2VisibilityReConverter}}" HorizontalAlignment="Stretch" Style="{StaticResource TextBlockDefaultThiLight}" Text="{Binding Path=(hc:InfoElement.Placeholder),RelativeSource={RelativeSource TemplatedParent}}" />
<ToggleButton ClickMode="Release" BorderThickness="0" Grid.Column="1" IsChecked="{Binding IsDropDownOpen, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}" Height="Auto" Width="Auto" HorizontalContentAlignment="Left" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" hc:IconElement.Width="14" Style="{StaticResource ToggleButtonIconTransparent}" Padding="{Binding Padding, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource ThicknessSplitConverter}, ConverterParameter='0,0,1,0'}" hc:IconSwitchElement.Geometry="{StaticResource DownGeometry}" hc:IconSwitchElement.GeometrySelected="{StaticResource UpGeometry}" Foreground="{TemplateBinding BorderBrush}" Focusable="False" />
<Border Grid.Column="0" Margin="-4 0">
<hc:UniformSpacingPanel x:Name="PART_Panel" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" Spacing="{TemplateBinding TagSpacing}" ChildWrapping="Wrap" ItemVerticalAlignment="Center" />
</Border>
</Popup>
<ToggleButton Grid.Column="1" VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" Padding="{TemplateBinding Padding}" Content="{Binding Path=(hc:InfoElement.Placeholder),RelativeSource={RelativeSource TemplatedParent}}" x:Name="toggleButton" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Grid.ColumnSpan="2" IsChecked="{Binding IsDropDownOpen, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}" Style="{StaticResource ComboBoxWatermarkToggleButton}"/>
<Border Grid.Column="1" Margin="1,0">
<WrapPanel Name="PART_Panel" Margin="3,1,3,4"/>
</Border>
<Popup x:Name="PART_Popup" StaysOpen="False" PlacementTarget="{Binding ElementName=border}" AllowsTransparency="true" IsOpen="{Binding IsDropDownOpen,RelativeSource={RelativeSource TemplatedParent},Mode=TwoWay}" Margin="1" PopupAnimation="{StaticResource {x:Static SystemParameters.ComboBoxPopupAnimationKey}}" Placement="Bottom">
<Decorator Margin="8 0">
<Border Effect="{StaticResource EffectShadow2}" BorderThickness="0,1,0,0" Margin="0,0,0,8" CornerRadius="{Binding Path=(hc:BorderElement.CornerRadius),RelativeSource={RelativeSource TemplatedParent}}" x:Name="dropDownBorder" MinWidth="{Binding ActualWidth, ElementName=border}" MaxHeight="{TemplateBinding MaxDropDownHeight}" BorderBrush="{DynamicResource BorderBrush}" Background="{DynamicResource RegionBrush}">
<hc:ToggleBlock IsChecked="{Binding HasItems,RelativeSource={RelativeSource TemplatedParent},Mode=OneWay}" VerticalContentAlignment="Stretch" HorizontalContentAlignment="Stretch">
<hc:ToggleBlock.CheckedContent>
<Grid Margin="2" ClipToBounds="False">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition />
</Grid.RowDefinitions>
<hc:CheckComboBoxItem x:Name="PART_SelectAll" Style="{TemplateBinding ItemContainerStyle}" IsEnabled="{TemplateBinding ShowSelectAllButton}" Visibility="{Binding ShowSelectAllButton,RelativeSource={RelativeSource TemplatedParent},Converter={StaticResource Boolean2VisibilityConverter}}" HorizontalContentAlignment="Stretch" Content="{ex:Lang Key={x:Static langs:LangKeys.All}}" />
<ScrollViewer x:Name="DropDownScrollViewer" Grid.Row="1">
<ItemsPresenter x:Name="ItemsPresenter" KeyboardNavigation.DirectionalNavigation="Contained" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
</ScrollViewer>
</Grid>
</hc:ToggleBlock.CheckedContent>
<hc:ToggleBlock.UnCheckedContent>
<hc:Empty />
</hc:ToggleBlock.UnCheckedContent>
</hc:ToggleBlock>
</Border>
</Decorator>
</Popup>
</Grid>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="HasItems" Value="false">
<Setter Property="Height" TargetName="dropDownBorder" Value="95"/>
<Setter Property="Height" TargetName="dropDownBorder" Value="95" />
</Trigger>
<Trigger Property="hc:DropDownElement.ConsistentWidth" Value="True">
<Setter Property="MaxWidth" TargetName="dropDownBorder" Value="{Binding ActualWidth, ElementName=toggleButton}"/>
<Setter Property="MinWidth" TargetName="dropDownBorder" Value="{Binding ActualWidth, ElementName=toggleButton}"/>
<Setter Property="MaxWidth" TargetName="dropDownBorder" Value="{Binding ActualWidth, ElementName=border}" />
<Setter Property="MinWidth" TargetName="dropDownBorder" Value="{Binding ActualWidth, ElementName=border}" />
</Trigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsMouseOver" Value="true" SourceName="toggleButton"/>
<Condition Property="IsOpen" Value="false" SourceName="PART_Popup"/>
<Condition Property="IsMouseOver" Value="true" SourceName="contentPanel" />
<Condition Property="IsOpen" Value="false" SourceName="PART_Popup" />
</MultiTrigger.Conditions>
<Setter Property="BorderBrush" Value="{DynamicResource SecondaryBorderBrush}"/>
<Setter Property="BorderBrush" Value="{DynamicResource SecondaryBorderBrush}" />
</MultiTrigger>
<Trigger Property="IsOpen" Value="True" SourceName="PART_Popup">
<Setter Property="BorderBrush" Value="{DynamicResource PrimaryBrush}"/>
<Setter Property="BorderBrush" Value="{DynamicResource PrimaryBrush}" />
</Trigger>
<Trigger Property="IsFocused" Value="True">
<Setter Property="BorderBrush" Value="{DynamicResource PrimaryBrush}"/>
<Setter Property="BorderBrush" Value="{DynamicResource PrimaryBrush}" />
</Trigger>
<Trigger Property="IsEnabled" Value="false">
<Setter Property="Opacity" Value="0.4" TargetName="toggleButton"/>
<Setter Property="Opacity" Value="0.4" TargetName="PART_Panel"/>
<Setter Property="Opacity" Value="0.4" TargetName="contentPanel" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
<Style x:Key="CheckComboBoxExtendBaseStyle" BasedOn="{StaticResource CheckComboBoxBaseStyle}" TargetType="hc:CheckComboBox">
<Setter Property="Height" Value="Auto"/>
<Setter Property="Template" Value="{StaticResource CheckComboBoxExtendTopTemplate}"/>
<Setter Property="hc:InfoElement.Symbol" Value="●"/>
<Setter Property="hc:InfoElement.ContentHeight" Value="{x:Static system:Double.NaN}"/>
<Setter Property="hc:InfoElement.MinContentHeight" Value="{StaticResource DefaultControlHeight}"/>
<Setter Property="Height" Value="Auto" />
<Setter Property="Template" Value="{StaticResource CheckComboBoxExtendTopTemplate}" />
<Setter Property="hc:InfoElement.Symbol" Value="●" />
<Setter Property="hc:InfoElement.ContentHeight" Value="{x:Static system:Double.NaN}" />
<Setter Property="hc:InfoElement.MinContentHeight" Value="{StaticResource DefaultControlHeight}" />
<Style.Triggers>
<Trigger Property="hc:InfoElement.TitlePlacement" Value="Left">
<Setter Property="Template" Value="{StaticResource CheckComboBoxExtendLeftTemplate}"/>
<Setter Property="Template" Value="{StaticResource CheckComboBoxExtendLeftTemplate}" />
</Trigger>
</Style.Triggers>
</Style>
<ControlTemplate x:Key="CheckComboBoxPlusTopTemplate" TargetType="hc:CheckComboBox">
<ControlTemplate.Resources>
<Storyboard x:Key="StoryboardShow">
<ThicknessAnimation Storyboard.TargetName="TextBlockError" Storyboard.TargetProperty="Margin" To="9,0,0,-18" Duration="0:0:.2"/>
</Storyboard>
<Storyboard x:Key="StoryboardHidden">
<ThicknessAnimation Storyboard.TargetName="TextBlockError" Storyboard.TargetProperty="Margin" To="9,0,0,4" Duration="0:0:0"/>
</Storyboard>
</ControlTemplate.Resources>
<Grid >
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition MinHeight="{Binding Path=(hc:InfoElement.MinContentHeight),RelativeSource={RelativeSource TemplatedParent}}" Height="{Binding Path=(hc:InfoElement.ContentHeight),RelativeSource={RelativeSource TemplatedParent}}"/>
<RowDefinition Height="Auto" />
<RowDefinition MinHeight="{Binding Path=(hc:InfoElement.MinContentHeight),RelativeSource={RelativeSource TemplatedParent}}" Height="{Binding Path=(hc:InfoElement.ContentHeight),RelativeSource={RelativeSource TemplatedParent},Converter={StaticResource Double2GridLengthConverter}}" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition Width="Auto" MinWidth="30"/>
</Grid.ColumnDefinitions>
<StackPanel Grid.ColumnSpan="2" Visibility="{Binding Path=(hc:InfoElement.Title),RelativeSource={RelativeSource TemplatedParent},Converter={StaticResource String2VisibilityConverter}}" Orientation="Horizontal" Margin="{TemplateBinding Padding}">
<TextBlock Margin="1,0,0,0" Text="{Binding Path=(hc:InfoElement.Title),RelativeSource={RelativeSource TemplatedParent}}"/>
<ContentPresenter TextElement.Foreground="{DynamicResource DangerBrush}" Margin="4,0,0,0" Content="{Binding Path=(hc:InfoElement.Symbol),RelativeSource={RelativeSource TemplatedParent}}" Visibility="{Binding Path=(hc:InfoElement.Necessary),RelativeSource={RelativeSource TemplatedParent},Converter={StaticResource Boolean2VisibilityConverter}}"/>
</StackPanel>
<Popup Grid.Row="1" Grid.Column="0" x:Name="PART_Popup" PlacementTarget="{Binding ElementName=toggleButton}" AllowsTransparency="true" Grid.ColumnSpan="2" StaysOpen="False" IsOpen="{Binding IsDropDownOpen, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}" Margin="1" PopupAnimation="{StaticResource {x:Static SystemParameters.ComboBoxPopupAnimationKey}}" Placement="Bottom">
<Border CornerRadius="{Binding Path=(hc:BorderElement.CornerRadius),RelativeSource={RelativeSource TemplatedParent}}" x:Name="dropDownBorder" MaxHeight="{TemplateBinding MaxDropDownHeight}" BorderBrush="{DynamicResource BorderBrush}" BorderThickness="1" Background="{DynamicResource RegionBrush}">
<hc:ToggleBlock IsChecked="{Binding HasItems,RelativeSource={RelativeSource TemplatedParent},Mode=OneWay}" VerticalContentAlignment="Stretch" HorizontalContentAlignment="Stretch">
<hc:ToggleBlock.CheckedContent>
<Grid Margin="0,4" ClipToBounds="False">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition/>
</Grid.RowDefinitions>
<hc:CheckComboBoxItem x:Name="PART_SelectAll" Style="{TemplateBinding ItemContainerStyle}" IsEnabled="{TemplateBinding ShowSelectAllButton}" Visibility="{Binding ShowSelectAllButton,RelativeSource={RelativeSource TemplatedParent},Converter={StaticResource Boolean2VisibilityConverter}}" HorizontalContentAlignment="Stretch" Content="{ex:Lang Key={x:Static langs:LangKeys.All}}"/>
<ScrollViewer x:Name="DropDownScrollViewer" Grid.Row="1">
<ItemsPresenter x:Name="ItemsPresenter" KeyboardNavigation.DirectionalNavigation="Contained" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
</ScrollViewer>
</Grid>
</hc:ToggleBlock.CheckedContent>
<hc:ToggleBlock.UnCheckedContent>
<hc:Empty/>
</hc:ToggleBlock.UnCheckedContent>
</hc:ToggleBlock>
<DockPanel Grid.ColumnSpan="2" LastChildFill="True" Visibility="{Binding Path=(hc:InfoElement.Title),RelativeSource={RelativeSource TemplatedParent},Converter={StaticResource String2VisibilityConverter}}" HorizontalAlignment="{Binding Path=(hc:TitleElement.HorizontalAlignment),RelativeSource={RelativeSource TemplatedParent}}" Margin="{Binding Path=(hc:TitleElement.MarginOnTheTop),RelativeSource={RelativeSource TemplatedParent}}">
<ContentPresenter DockPanel.Dock="Right" TextElement.Foreground="{DynamicResource DangerBrush}" Margin="4,0,0,0" Content="{Binding Path=(hc:InfoElement.Symbol),RelativeSource={RelativeSource TemplatedParent}}" Visibility="{Binding Path=(hc:InfoElement.Necessary),RelativeSource={RelativeSource TemplatedParent},Converter={StaticResource Boolean2VisibilityConverter}}" />
<TextBlock hc:TextBlockAttach.AutoTooltip="True" TextWrapping="NoWrap" TextTrimming="CharacterEllipsis" Text="{Binding Path=(hc:InfoElement.Title),RelativeSource={RelativeSource TemplatedParent}}" />
</DockPanel>
<Grid x:Name="contentPanel" Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Border x:Name="border" Grid.ColumnSpan="3" CornerRadius="{Binding Path=(hc:BorderElement.CornerRadius),RelativeSource={RelativeSource TemplatedParent}}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" />
<TextBlock Grid.Column="0" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" Margin="{TemplateBinding Padding}" Visibility="{Binding SelectedItem,RelativeSource={RelativeSource AncestorType=hc:CheckComboBox},Converter={StaticResource Object2VisibilityReConverter}}" HorizontalAlignment="Stretch" Style="{StaticResource TextBlockDefaultThiLight}" Text="{Binding Path=(hc:InfoElement.Placeholder),RelativeSource={RelativeSource TemplatedParent}}" />
<ToggleButton ClickMode="Release" BorderThickness="0" Grid.Column="2" IsChecked="{Binding IsDropDownOpen, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}" Height="Auto" Width="Auto" HorizontalContentAlignment="Left" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" hc:IconElement.Width="14" Style="{StaticResource ToggleButtonIconTransparent}" Padding="{Binding Padding, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource ThicknessSplitConverter}, ConverterParameter='0,0,1,0'}" hc:IconSwitchElement.Geometry="{StaticResource DownGeometry}" hc:IconSwitchElement.GeometrySelected="{StaticResource UpGeometry}" Foreground="{TemplateBinding BorderBrush}" Focusable="False" />
<Border Grid.Column="0" Margin="-4 0">
<hc:UniformSpacingPanel x:Name="PART_Panel" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" Spacing="{TemplateBinding TagSpacing}" ChildWrapping="Wrap" ItemVerticalAlignment="Center" />
</Border>
</Popup>
<TextBlock Grid.Column="0" Grid.ColumnSpan="2" FontSize="12" Text="{TemplateBinding ErrorStr}" Name="TextBlockError" VerticalAlignment="Bottom" Margin="9,0,0,4" Foreground="{DynamicResource DangerBrush}" Grid.Row="1"/>
<ToggleButton Grid.Row="1" VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" Padding="{TemplateBinding Padding}" Content="{Binding Path=(hc:InfoElement.Placeholder),RelativeSource={RelativeSource TemplatedParent}}" Grid.Column="0" x:Name="toggleButton" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Grid.ColumnSpan="2" IsChecked="{Binding IsDropDownOpen, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}" Style="{StaticResource ComboBoxWatermarkToggleButton}"/>
<Border Grid.Row="1" Grid.Column="0" Margin="1,0">
<WrapPanel Name="PART_Panel" Margin="3,1,3,4"/>
</Border>
<Button Grid.Row="1" Command="interactivity:ControlCommands.Clear" Margin="0,0,26,0" Visibility="Collapsed" Name="ButtonClear" Width="16" Grid.Column="1" Style="{StaticResource ButtonIcon}" Padding="0,6" hc:IconElement.Geometry="{StaticResource DeleteFillCircleGeometry}" Foreground="{TemplateBinding BorderBrush}"/>
<Button Height="Auto" Width="Auto" HorizontalContentAlignment="Left" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" hc:IconElement.Width="14" Command="interactivity:ControlCommands.Clear" Visibility="Hidden" Name="ButtonClear" Grid.Column="1" Style="{StaticResource ButtonIcon}" Padding="0,0,4,0" hc:IconElement.Geometry="{StaticResource DeleteFillCircleGeometry}" Foreground="{Binding BorderBrush,ElementName=border}" />
<Popup x:Name="PART_Popup" StaysOpen="False" PlacementTarget="{Binding ElementName=border}" AllowsTransparency="true" IsOpen="{Binding IsDropDownOpen,RelativeSource={RelativeSource TemplatedParent},Mode=TwoWay}" Margin="1" PopupAnimation="{StaticResource {x:Static SystemParameters.ComboBoxPopupAnimationKey}}" Placement="Bottom">
<Decorator Margin="8 0">
<Border Effect="{StaticResource EffectShadow2}" BorderThickness="0,1,0,0" Margin="0,0,0,8" CornerRadius="{Binding Path=(hc:BorderElement.CornerRadius),RelativeSource={RelativeSource TemplatedParent}}" x:Name="dropDownBorder" MinWidth="{Binding ActualWidth, ElementName=border}" MaxHeight="{TemplateBinding MaxDropDownHeight}" BorderBrush="{DynamicResource BorderBrush}" Background="{DynamicResource RegionBrush}">
<hc:ToggleBlock IsChecked="{Binding HasItems,RelativeSource={RelativeSource TemplatedParent},Mode=OneWay}" VerticalContentAlignment="Stretch" HorizontalContentAlignment="Stretch">
<hc:ToggleBlock.CheckedContent>
<Grid Margin="2" ClipToBounds="False">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition />
</Grid.RowDefinitions>
<hc:CheckComboBoxItem x:Name="PART_SelectAll" Style="{TemplateBinding ItemContainerStyle}" IsEnabled="{TemplateBinding ShowSelectAllButton}" Visibility="{Binding ShowSelectAllButton,RelativeSource={RelativeSource TemplatedParent},Converter={StaticResource Boolean2VisibilityConverter}}" HorizontalContentAlignment="Stretch" Content="{ex:Lang Key={x:Static langs:LangKeys.All}}" />
<ScrollViewer x:Name="DropDownScrollViewer" Grid.Row="1">
<ItemsPresenter x:Name="ItemsPresenter" KeyboardNavigation.DirectionalNavigation="Contained" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
</ScrollViewer>
</Grid>
</hc:ToggleBlock.CheckedContent>
<hc:ToggleBlock.UnCheckedContent>
<hc:Empty />
</hc:ToggleBlock.UnCheckedContent>
</hc:ToggleBlock>
</Border>
</Decorator>
</Popup>
</Grid>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="HasItems" Value="false">
<Setter Property="Height" TargetName="dropDownBorder" Value="95"/>
<Setter Property="Height" TargetName="dropDownBorder" Value="95" />
</Trigger>
<Trigger Property="hc:DropDownElement.ConsistentWidth" Value="True">
<Setter Property="MaxWidth" TargetName="dropDownBorder" Value="{Binding ActualWidth, ElementName=toggleButton}"/>
<Setter Property="MinWidth" TargetName="dropDownBorder" Value="{Binding ActualWidth, ElementName=toggleButton}"/>
<Setter Property="MaxWidth" TargetName="dropDownBorder" Value="{Binding ActualWidth, ElementName=border}" />
<Setter Property="MinWidth" TargetName="dropDownBorder" Value="{Binding ActualWidth, ElementName=border}" />
</Trigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsMouseOver" Value="true" SourceName="toggleButton"/>
<Condition Property="IsOpen" Value="false" SourceName="PART_Popup"/>
<Condition Property="IsMouseOver" Value="true" SourceName="contentPanel" />
<Condition Property="IsOpen" Value="false" SourceName="PART_Popup" />
</MultiTrigger.Conditions>
<Setter Property="BorderBrush" Value="{DynamicResource SecondaryBorderBrush}"/>
<Setter Property="BorderBrush" Value="{DynamicResource SecondaryBorderBrush}" />
</MultiTrigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsMouseOver" Value="true" SourceName="ButtonClear"/>
<Condition Property="IsOpen" Value="false" SourceName="PART_Popup"/>
<Condition Property="IsMouseOver" Value="true" SourceName="ButtonClear" />
<Condition Property="IsOpen" Value="false" SourceName="PART_Popup" />
</MultiTrigger.Conditions>
<Setter Property="BorderBrush" Value="{DynamicResource SecondaryBorderBrush}"/>
<Setter Property="BorderBrush" Value="{DynamicResource SecondaryBorderBrush}" />
</MultiTrigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsMouseOver" Value="true" SourceName="toggleButton"/>
<Condition Property="ShowClearButton" Value="True"/>
<Condition Property="IsMouseOver" Value="true" SourceName="contentPanel" />
<Condition Property="hc:InfoElement.ShowClearButton" Value="True" />
</MultiTrigger.Conditions>
<Setter Property="Visibility" Value="Visible" TargetName="ButtonClear"/>
<Setter Property="Visibility" Value="Visible" TargetName="ButtonClear" />
</MultiTrigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsMouseOver" Value="true" SourceName="ButtonClear"/>
<Condition Property="ShowClearButton" Value="True"/>
<Condition Property="IsMouseOver" Value="true" SourceName="ButtonClear" />
<Condition Property="hc:InfoElement.ShowClearButton" Value="True" />
</MultiTrigger.Conditions>
<Setter Property="Visibility" Value="Visible" TargetName="ButtonClear"/>
<Setter Property="Visibility" Value="Visible" TargetName="ButtonClear" />
</MultiTrigger>
<Trigger Property="IsOpen" Value="True" SourceName="PART_Popup">
<Setter Property="BorderBrush" Value="{DynamicResource PrimaryBrush}"/>
<Setter Property="BorderBrush" Value="{DynamicResource PrimaryBrush}" />
</Trigger>
<Trigger Property="IsFocused" Value="True">
<Setter Property="BorderBrush" Value="{DynamicResource PrimaryBrush}"/>
</Trigger>
<Trigger Property="IsError" Value="true">
<Setter Property="BorderBrush" Value="{DynamicResource DangerBrush}"/>
<Trigger.EnterActions>
<BeginStoryboard Storyboard="{StaticResource StoryboardShow}"/>
</Trigger.EnterActions>
<Trigger.ExitActions>
<BeginStoryboard Storyboard="{StaticResource StoryboardHidden}"/>
</Trigger.ExitActions>
<Setter Property="BorderBrush" Value="{DynamicResource PrimaryBrush}" />
</Trigger>
<Trigger Property="IsEnabled" Value="false">
<Setter Property="Opacity" Value="0.4" TargetName="toggleButton"/>
<Setter Property="Opacity" Value="0.4" TargetName="PART_Panel"/>
<Setter Property="Opacity" Value="0.4" TargetName="contentPanel" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
<ControlTemplate x:Key="CheckComboBoxPlusLeftTemplate" TargetType="hc:CheckComboBox">
<ControlTemplate.Resources>
<Storyboard x:Key="StoryboardShow">
<ThicknessAnimation Storyboard.TargetName="TextBlockError" Storyboard.TargetProperty="Margin" To="9,0,0,-18" Duration="0:0:.2"/>
</Storyboard>
<Storyboard x:Key="StoryboardHidden">
<ThicknessAnimation Storyboard.TargetName="TextBlockError" Storyboard.TargetProperty="Margin" To="9,0,0,4" Duration="0:0:0"/>
</Storyboard>
</ControlTemplate.Resources>
<Grid x:Name="templateRoot" SnapsToDevicePixels="true" MinHeight="{Binding Path=(hc:InfoElement.MinContentHeight),RelativeSource={RelativeSource TemplatedParent}}" Height="{Binding Path=(hc:InfoElement.ContentHeight),RelativeSource={RelativeSource TemplatedParent},Converter={StaticResource Double2GridLengthConverter}}">
<Grid x:Name="templateRoot" SnapsToDevicePixels="true" MinHeight="{Binding Path=(hc:InfoElement.MinContentHeight),RelativeSource={RelativeSource TemplatedParent}}" Height="{Binding Path=(hc:InfoElement.ContentHeight),RelativeSource={RelativeSource TemplatedParent}}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="{Binding Path=(hc:InfoElement.TitleWidth),RelativeSource={RelativeSource TemplatedParent}}"/>
<ColumnDefinition/>
<ColumnDefinition Width="Auto" MinWidth="30"/>
<ColumnDefinition Width="{Binding Path=(hc:InfoElement.TitleWidth),RelativeSource={RelativeSource TemplatedParent}}" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<StackPanel VerticalAlignment="{TemplateBinding VerticalContentAlignment}" Margin="0,7,6,7" Visibility="{Binding Path=(hc:InfoElement.Title),RelativeSource={RelativeSource TemplatedParent},Converter={StaticResource String2VisibilityConverter}}" Orientation="Horizontal">
<TextBlock Text="{Binding Path=(hc:InfoElement.Title),RelativeSource={RelativeSource TemplatedParent}}"/>
<ContentPresenter TextElement.Foreground="{DynamicResource DangerBrush}" Margin="4,0,0,0" Content="{Binding Path=(hc:InfoElement.Symbol),RelativeSource={RelativeSource TemplatedParent}}" Visibility="{Binding Path=(hc:InfoElement.Necessary),RelativeSource={RelativeSource TemplatedParent},Converter={StaticResource Boolean2VisibilityConverter}}"/>
</StackPanel>
<Popup Grid.Column="1" x:Name="PART_Popup" PlacementTarget="{Binding ElementName=toggleButton}" AllowsTransparency="true" Grid.ColumnSpan="2" StaysOpen="False" IsOpen="{Binding IsDropDownOpen, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}" Margin="1" PopupAnimation="{StaticResource {x:Static SystemParameters.ComboBoxPopupAnimationKey}}" Placement="Bottom">
<Border CornerRadius="{Binding Path=(hc:BorderElement.CornerRadius),RelativeSource={RelativeSource TemplatedParent}}" x:Name="dropDownBorder" MaxHeight="{TemplateBinding MaxDropDownHeight}" BorderBrush="{DynamicResource BorderBrush}" BorderThickness="1" Background="{DynamicResource RegionBrush}">
<hc:ToggleBlock IsChecked="{Binding HasItems,RelativeSource={RelativeSource TemplatedParent},Mode=OneWay}" VerticalContentAlignment="Stretch" HorizontalContentAlignment="Stretch">
<hc:ToggleBlock.CheckedContent>
<Grid Margin="0,4" ClipToBounds="False">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition/>
</Grid.RowDefinitions>
<hc:CheckComboBoxItem x:Name="PART_SelectAll" Style="{TemplateBinding ItemContainerStyle}" IsEnabled="{TemplateBinding ShowSelectAllButton}" Visibility="{Binding ShowSelectAllButton,RelativeSource={RelativeSource TemplatedParent},Converter={StaticResource Boolean2VisibilityConverter}}" HorizontalContentAlignment="Stretch" Content="{ex:Lang Key={x:Static langs:LangKeys.All}}"/>
<ScrollViewer x:Name="DropDownScrollViewer" Grid.Row="1">
<ItemsPresenter x:Name="ItemsPresenter" KeyboardNavigation.DirectionalNavigation="Contained" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
</ScrollViewer>
</Grid>
</hc:ToggleBlock.CheckedContent>
<hc:ToggleBlock.UnCheckedContent>
<hc:Empty/>
</hc:ToggleBlock.UnCheckedContent>
</hc:ToggleBlock>
<DockPanel LastChildFill="True" Visibility="{Binding Path=(hc:InfoElement.Title),RelativeSource={RelativeSource TemplatedParent},Converter={StaticResource String2VisibilityConverter}}" HorizontalAlignment="{Binding Path=(hc:TitleElement.HorizontalAlignment),RelativeSource={RelativeSource TemplatedParent}}" VerticalAlignment="{Binding Path=(hc:TitleElement.VerticalAlignment),RelativeSource={RelativeSource TemplatedParent}}" Margin="{Binding Path=(hc:TitleElement.MarginOnTheLeft),RelativeSource={RelativeSource TemplatedParent}}">
<ContentPresenter DockPanel.Dock="Right" TextElement.Foreground="{DynamicResource DangerBrush}" Margin="4,0,0,0" Content="{Binding Path=(hc:InfoElement.Symbol),RelativeSource={RelativeSource TemplatedParent}}" Visibility="{Binding Path=(hc:InfoElement.Necessary),RelativeSource={RelativeSource TemplatedParent},Converter={StaticResource Boolean2VisibilityConverter}}" />
<TextBlock hc:TextBlockAttach.AutoTooltip="True" TextWrapping="NoWrap" TextTrimming="CharacterEllipsis" Text="{Binding Path=(hc:InfoElement.Title),RelativeSource={RelativeSource TemplatedParent}}" />
</DockPanel>
<Grid x:Name="contentPanel" Grid.Column="1">
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Border x:Name="border" Grid.ColumnSpan="3" CornerRadius="{Binding Path=(hc:BorderElement.CornerRadius),RelativeSource={RelativeSource TemplatedParent}}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" />
<TextBlock Grid.Column="0" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" Margin="{TemplateBinding Padding}" Visibility="{Binding SelectedItem,RelativeSource={RelativeSource AncestorType=hc:CheckComboBox},Converter={StaticResource Object2VisibilityReConverter}}" HorizontalAlignment="Stretch" Style="{StaticResource TextBlockDefaultThiLight}" Text="{Binding Path=(hc:InfoElement.Placeholder),RelativeSource={RelativeSource TemplatedParent}}" />
<ToggleButton ClickMode="Release" BorderThickness="0" Grid.Column="2" IsChecked="{Binding IsDropDownOpen, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}" Height="Auto" Width="Auto" HorizontalContentAlignment="Left" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" hc:IconElement.Width="14" Style="{StaticResource ToggleButtonIconTransparent}" Padding="{Binding Padding, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource ThicknessSplitConverter}, ConverterParameter='0,0,1,0'}" hc:IconSwitchElement.Geometry="{StaticResource DownGeometry}" hc:IconSwitchElement.GeometrySelected="{StaticResource UpGeometry}" Foreground="{TemplateBinding BorderBrush}" Focusable="False" />
<Border Grid.Column="0" Margin="-4 0">
<hc:UniformSpacingPanel x:Name="PART_Panel" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" Spacing="{TemplateBinding TagSpacing}" ChildWrapping="Wrap" ItemVerticalAlignment="Center" />
</Border>
</Popup>
<TextBlock Grid.Column="1" Grid.ColumnSpan="2" FontSize="12" Text="{TemplateBinding ErrorStr}" Name="TextBlockError" VerticalAlignment="Bottom" Margin="9,0,0,4" Foreground="{DynamicResource DangerBrush}"/>
<ToggleButton Grid.Column="1" VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" Padding="{TemplateBinding Padding}" Content="{Binding Path=(hc:InfoElement.Placeholder),RelativeSource={RelativeSource TemplatedParent}}" x:Name="toggleButton" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Grid.ColumnSpan="2" IsChecked="{Binding IsDropDownOpen, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}" Style="{StaticResource ComboBoxWatermarkToggleButton}"/>
<Border Grid.Column="1" Margin="1,0">
<WrapPanel Name="PART_Panel" Margin="3,1,3,4"/>
</Border>
<Button Command="interactivity:ControlCommands.Clear" Margin="0,0,26,0" Visibility="Collapsed" Name="ButtonClear" Width="16" Grid.Column="2" Style="{StaticResource ButtonIcon}" Padding="0,6" hc:IconElement.Geometry="{StaticResource DeleteFillCircleGeometry}" Foreground="{TemplateBinding BorderBrush}"/>
<Button Height="Auto" Width="Auto" HorizontalContentAlignment="Left" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" hc:IconElement.Width="14" Command="interactivity:ControlCommands.Clear" Visibility="Hidden" Name="ButtonClear" Grid.Column="1" Style="{StaticResource ButtonIcon}" Padding="0,0,4,0" hc:IconElement.Geometry="{StaticResource DeleteFillCircleGeometry}" Foreground="{Binding BorderBrush,ElementName=border}" />
<Popup x:Name="PART_Popup" StaysOpen="False" PlacementTarget="{Binding ElementName=border}" AllowsTransparency="true" IsOpen="{Binding IsDropDownOpen,RelativeSource={RelativeSource TemplatedParent},Mode=TwoWay}" Margin="1" PopupAnimation="{StaticResource {x:Static SystemParameters.ComboBoxPopupAnimationKey}}" Placement="Bottom">
<Decorator Margin="8 0">
<Border Effect="{StaticResource EffectShadow2}" BorderThickness="0,1,0,0" Margin="0,0,0,8" CornerRadius="{Binding Path=(hc:BorderElement.CornerRadius),RelativeSource={RelativeSource TemplatedParent}}" x:Name="dropDownBorder" MinWidth="{Binding ActualWidth, ElementName=border}" MaxHeight="{TemplateBinding MaxDropDownHeight}" BorderBrush="{DynamicResource BorderBrush}" Background="{DynamicResource RegionBrush}">
<hc:ToggleBlock IsChecked="{Binding HasItems,RelativeSource={RelativeSource TemplatedParent},Mode=OneWay}" VerticalContentAlignment="Stretch" HorizontalContentAlignment="Stretch">
<hc:ToggleBlock.CheckedContent>
<Grid Margin="2" ClipToBounds="False">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition />
</Grid.RowDefinitions>
<hc:CheckComboBoxItem x:Name="PART_SelectAll" Style="{TemplateBinding ItemContainerStyle}" IsEnabled="{TemplateBinding ShowSelectAllButton}" Visibility="{Binding ShowSelectAllButton,RelativeSource={RelativeSource TemplatedParent},Converter={StaticResource Boolean2VisibilityConverter}}" HorizontalContentAlignment="Stretch" Content="{ex:Lang Key={x:Static langs:LangKeys.All}}" />
<ScrollViewer x:Name="DropDownScrollViewer" Grid.Row="1">
<ItemsPresenter x:Name="ItemsPresenter" KeyboardNavigation.DirectionalNavigation="Contained" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
</ScrollViewer>
</Grid>
</hc:ToggleBlock.CheckedContent>
<hc:ToggleBlock.UnCheckedContent>
<hc:Empty />
</hc:ToggleBlock.UnCheckedContent>
</hc:ToggleBlock>
</Border>
</Decorator>
</Popup>
</Grid>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="HasItems" Value="false">
<Setter Property="Height" TargetName="dropDownBorder" Value="95"/>
<Setter Property="Height" TargetName="dropDownBorder" Value="95" />
</Trigger>
<Trigger Property="hc:DropDownElement.ConsistentWidth" Value="True">
<Setter Property="MaxWidth" TargetName="dropDownBorder" Value="{Binding ActualWidth, ElementName=toggleButton}"/>
<Setter Property="MinWidth" TargetName="dropDownBorder" Value="{Binding ActualWidth, ElementName=toggleButton}"/>
<Setter Property="MaxWidth" TargetName="dropDownBorder" Value="{Binding ActualWidth, ElementName=border}" />
<Setter Property="MinWidth" TargetName="dropDownBorder" Value="{Binding ActualWidth, ElementName=border}" />
</Trigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsMouseOver" Value="true" SourceName="toggleButton"/>
<Condition Property="IsOpen" Value="false" SourceName="PART_Popup"/>
<Condition Property="IsMouseOver" Value="true" SourceName="contentPanel" />
<Condition Property="IsOpen" Value="false" SourceName="PART_Popup" />
</MultiTrigger.Conditions>
<Setter Property="BorderBrush" Value="{DynamicResource SecondaryBorderBrush}"/>
<Setter Property="BorderBrush" Value="{DynamicResource SecondaryBorderBrush}" />
</MultiTrigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsMouseOver" Value="true" SourceName="ButtonClear"/>
<Condition Property="IsOpen" Value="false" SourceName="PART_Popup"/>
<Condition Property="IsMouseOver" Value="true" SourceName="ButtonClear" />
<Condition Property="IsOpen" Value="false" SourceName="PART_Popup" />
</MultiTrigger.Conditions>
<Setter Property="BorderBrush" Value="{DynamicResource SecondaryBorderBrush}"/>
<Setter Property="BorderBrush" Value="{DynamicResource SecondaryBorderBrush}" />
</MultiTrigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsMouseOver" Value="true" SourceName="toggleButton"/>
<Condition Property="ShowClearButton" Value="True"/>
<Condition Property="IsMouseOver" Value="true" SourceName="contentPanel" />
<Condition Property="hc:InfoElement.ShowClearButton" Value="True" />
</MultiTrigger.Conditions>
<Setter Property="Visibility" Value="Visible" TargetName="ButtonClear"/>
<Setter Property="Visibility" Value="Visible" TargetName="ButtonClear" />
</MultiTrigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsMouseOver" Value="true" SourceName="ButtonClear"/>
<Condition Property="ShowClearButton" Value="True"/>
<Condition Property="IsMouseOver" Value="true" SourceName="ButtonClear" />
<Condition Property="hc:InfoElement.ShowClearButton" Value="True" />
</MultiTrigger.Conditions>
<Setter Property="Visibility" Value="Visible" TargetName="ButtonClear"/>
<Setter Property="Visibility" Value="Visible" TargetName="ButtonClear" />
</MultiTrigger>
<Trigger Property="IsOpen" Value="True" SourceName="PART_Popup">
<Setter Property="BorderBrush" Value="{DynamicResource PrimaryBrush}"/>
<Setter Property="BorderBrush" Value="{DynamicResource PrimaryBrush}" />
</Trigger>
<Trigger Property="IsFocused" Value="True">
<Setter Property="BorderBrush" Value="{DynamicResource PrimaryBrush}"/>
</Trigger>
<Trigger Property="IsError" Value="true">
<Setter Property="BorderBrush" Value="{DynamicResource DangerBrush}"/>
<Trigger.EnterActions>
<BeginStoryboard Storyboard="{StaticResource StoryboardShow}"/>
</Trigger.EnterActions>
<Trigger.ExitActions>
<BeginStoryboard Storyboard="{StaticResource StoryboardHidden}"/>
</Trigger.ExitActions>
<Setter Property="BorderBrush" Value="{DynamicResource PrimaryBrush}" />
</Trigger>
<Trigger Property="IsEnabled" Value="false">
<Setter Property="Opacity" Value="0.4" TargetName="toggleButton"/>
<Setter Property="Opacity" Value="0.4" TargetName="PART_Panel"/>
<Setter Property="Opacity" Value="0.4" TargetName="contentPanel" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
<Style x:Key="CheckComboBoxPlusBaseStyle" BasedOn="{StaticResource CheckComboBoxExtendBaseStyle}" TargetType="hc:CheckComboBox">
<Setter Property="Template" Value="{StaticResource CheckComboBoxPlusTopTemplate}"/>
<Setter Property="Template" Value="{StaticResource CheckComboBoxPlusTopTemplate}" />
<Style.Triggers>
<Trigger Property="hc:InfoElement.TitlePlacement" Value="Left">
<Setter Property="Template" Value="{StaticResource CheckComboBoxPlusLeftTemplate}"/>
<Setter Property="Template" Value="{StaticResource CheckComboBoxPlusLeftTemplate}" />
</Trigger>
</Style.Triggers>
</Style>
File diff suppressed because it is too large. Load diff
@@ -1,14 +1,6 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:hc="clr-namespace:HandyControl.Controls"
xmlns:themes="clr-namespace:HandyControl.Themes">
<ResourceDictionary.MergedDictionaries>
<themes:SharedResourceDictionary Source="pack://application:,,,/HandyControl;component/Themes/Basic/Sizes.xaml"/>
<themes:SharedResourceDictionary Source="pack://application:,,,/HandyControl;component/Themes/Basic/Converters.xaml"/>
<themes:SharedResourceDictionary Source="pack://application:,,,/HandyControl;component/Themes/Styles/Base/BaseStyle.xaml"/>
<themes:SharedResourceDictionary Source="pack://application:,,,/HandyControl;component/Themes/Styles/Base/ScrollViewerBaseStyle.xaml"/>
</ResourceDictionary.MergedDictionaries>
xmlns:hc="clr-namespace:HandyControl.Controls">
<PathGeometry x:Key="TreeArrow" Figures="M508.893248 762.931659a65.039498 65.039498 0 0 1-46.420659-19.485839L97.125746 371.004022c-25.143018-25.634319-24.752868-66.816849 0.881451-91.959868 25.648769-25.164693 66.809624-24.745643 91.959867 0.881451l318.933409 325.125238 318.933408-325.125238a65.025048 65.025048 0 0 1 92.841318 91.078417L555.313907 743.44582a65.025048 65.025048 0 0 1-46.420659 19.485839z"/>
<Style x:Key="ExpandCollapseToggleStyle" TargetType="ToggleButton">
@@ -44,13 +36,15 @@
<Setter Property="Background" Value="Transparent"/>
<Setter Property="Padding" Value="10,0"/>
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="MinHeight" Value="{StaticResource DefaultControlHeight}"/>
<Setter Property="Margin" Value="0,0,0,2" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="TreeViewItem">
<Grid>
<Grid.RowDefinitions>
<RowDefinition MinHeight="{StaticResource DefaultControlHeight}"/>
<RowDefinition/>
<RowDefinition MinHeight="{TemplateBinding MinHeight}"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Border x:Name="Bd" CornerRadius="{Binding Path=(hc:BorderElement.CornerRadius),RelativeSource={RelativeSource TemplatedParent}}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Padding="{TemplateBinding Padding}" SnapsToDevicePixels="true">
<DockPanel LastChildFill="True" Margin="{Binding Converter={StaticResource TreeViewItemMarginConverter}, RelativeSource={RelativeSource TemplatedParent}}">
@@ -83,7 +77,7 @@
<Setter Property="Foreground" Value="{DynamicResource PrimaryTextBrush}"/>
</MultiTrigger>
<Trigger Property="IsEnabled" Value="false">
<Setter Property="Foreground" Value="{StaticResource {x:Static SystemColors.GrayTextBrushKey}}"/>
<Setter Property="Opacity" Value=".4" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
@@ -96,7 +90,8 @@
<Setter Property="Background" Value="{DynamicResource RegionBrush}"/>
<Setter Property="BorderBrush" Value="{DynamicResource BorderBrush}"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="Padding" Value="0"/>
<Setter Property="Padding" Value="2,2,2,0" />
<Setter Property="hc:BorderElement.CornerRadius" Value="{StaticResource DefaultCornerRadius}" />
<Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Auto"/>
<Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto"/>
<Setter Property="ScrollViewer.PanningMode" Value="Both"/>
@@ -106,23 +101,18 @@
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="TreeView">
<Border x:Name="Bd" BorderBrush="{TemplateBinding BorderBrush}" Background="{TemplateBinding Background}" BorderThickness="{TemplateBinding BorderThickness}" SnapsToDevicePixels="true">
<Border x:Name="Bd" CornerRadius="{Binding Path=(hc:BorderElement.CornerRadius),RelativeSource={RelativeSource TemplatedParent}}" BorderBrush="{TemplateBinding BorderBrush}" Background="{TemplateBinding Background}" BorderThickness="{TemplateBinding BorderThickness}" SnapsToDevicePixels="true">
<hc:ToggleBlock IsChecked="{Binding HasItems,RelativeSource={RelativeSource TemplatedParent},Mode=OneWay}" VerticalContentAlignment="Stretch" HorizontalContentAlignment="Stretch">
<hc:ToggleBlock.CheckedContent>
<hc:ScrollViewer x:Name="_tv_scrollviewer_" IsInertiaEnabled="{Binding Path=(hc:ScrollViewer.IsInertiaEnabled),RelativeSource={RelativeSource TemplatedParent}}" Template="{StaticResource ScrollViewerBaseControlTemplate}" Background="{TemplateBinding Background}" CanContentScroll="false" Focusable="false" HorizontalScrollBarVisibility="{TemplateBinding ScrollViewer.HorizontalScrollBarVisibility}" Padding="{TemplateBinding Padding}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalScrollBarVisibility="{TemplateBinding ScrollViewer.VerticalScrollBarVisibility}">
<ItemsPresenter/>
<hc:ScrollViewer IsInertiaEnabled="{Binding Path=(hc:ScrollViewer.IsInertiaEnabled),RelativeSource={RelativeSource TemplatedParent}}" Focusable="false" HorizontalScrollBarVisibility="{TemplateBinding ScrollViewer.HorizontalScrollBarVisibility}" Padding="{TemplateBinding Padding}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalScrollBarVisibility="{TemplateBinding ScrollViewer.VerticalScrollBarVisibility}">
<ItemsPresenter />
</hc:ScrollViewer>
</hc:ToggleBlock.CheckedContent>
<hc:ToggleBlock.UnCheckedContent>
<hc:Empty/>
<hc:Empty />
</hc:ToggleBlock.UnCheckedContent>
</hc:ToggleBlock>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsEnabled" Value="false">
<Setter Property="Background" TargetName="Bd" Value="{StaticResource {x:Static SystemColors.ControlBrushKey}}"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
@@ -1,250 +1,11 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:hc="clr-namespace:HandyControl.Controls"
xmlns:system="clr-namespace:System;assembly=mscorlib"
xmlns:themes="clr-namespace:HandyControl.Themes">
xmlns:hc="clr-namespace:HandyControl.Controls">
<ResourceDictionary.MergedDictionaries>
<themes:SharedResourceDictionary Source="pack://application:,,,/HandyControl;component/Themes/Styles/Base/ScrollViewerBaseStyle.xaml"/>
<themes:SharedResourceDictionary Source="pack://application:,,,/HandyControl;component/Themes/Styles/Button.xaml"/>
<themes:SharedResourceDictionary Source="pack://application:,,,/HandyControl;component/Themes/Styles/ToggleButton.xaml"/>
<themes:SharedResourceDictionary Source="pack://application:,,,/HandyControl;component/Themes/Styles/TextBox.xaml"/>
<themes:SharedResourceDictionary Source="pack://application:,,,/HandyControl;component/Themes/Styles/ComboBox.xaml"/>
<themes:SharedResourceDictionary Source="pack://application:,,,/HandyControl;component/Themes/Styles/CheckBox.xaml"/>
</ResourceDictionary.MergedDictionaries>
<Style x:Key="RowHeaderGripperStyle" TargetType="Thumb">
<Setter Property="Height" Value="8"/>
<Setter Property="Background" Value="Transparent"/>
<Setter Property="Cursor" Value="SizeNS"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Thumb">
<Border Background="{TemplateBinding Background}" Padding="{TemplateBinding Padding}"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="DataGridCellStyle" TargetType="DataGridCell">
<Setter Property="FocusVisualStyle">
<Setter.Value>
<Style>
<Setter Property="Control.Template">
<Setter.Value>
<ControlTemplate>
<Rectangle Margin="2" Opacity=".6" SnapsToDevicePixels="true" Stroke="{DynamicResource SecondaryBorderBrush}" StrokeThickness="2" StrokeDashArray="1 1" RadiusX="4" RadiusY="4"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Setter.Value>
</Setter>
<Setter Property="Background" Value="Transparent"/>
<Setter Property="BorderBrush" Value="Transparent"/>
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="HorizontalContentAlignment" Value="Left"/>
<Setter Property="Padding" Value="{StaticResource DefaultControlPadding}"/>
<Setter Property="Margin" Value="0,0,4,0"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="DataGridCell">
<Border CornerRadius="4" Padding="{TemplateBinding Padding}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" SnapsToDevicePixels="True">
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding IsSelected,RelativeSource={RelativeSource Self}}" Value="true"/>
<Condition Binding="{Binding SelectionUnit,RelativeSource={RelativeSource FindAncestor,AncestorType=DataGrid}}" Value="Cell"/>
</MultiDataTrigger.Conditions>
<Setter Property="Foreground" Value="{DynamicResource TextIconBrush}"/>
<Setter Property="Background" Value="{DynamicResource PrimaryBrush}"/>
</MultiDataTrigger>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding IsSelected,RelativeSource={RelativeSource Self}}" Value="true"/>
<Condition Binding="{Binding IsSelected,RelativeSource={RelativeSource AncestorType=DataGridRow}}" Value="False"/>
<Condition Binding="{Binding SelectionUnit,RelativeSource={RelativeSource FindAncestor,AncestorType=DataGrid}}" Value="CellOrRowHeader"/>
</MultiDataTrigger.Conditions>
<Setter Property="Foreground" Value="{DynamicResource TextIconBrush}"/>
<Setter Property="Background" Value="{DynamicResource PrimaryBrush}"/>
</MultiDataTrigger>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding IsSelected,RelativeSource={RelativeSource Self}}" Value="true"/>
<Condition Binding="{Binding IsSelected,RelativeSource={RelativeSource AncestorType=DataGridRow}}" Value="True"/>
<Condition Binding="{Binding SelectionUnit,RelativeSource={RelativeSource FindAncestor,AncestorType=DataGrid}}" Value="CellOrRowHeader"/>
</MultiDataTrigger.Conditions>
<Setter Property="Foreground" Value="{DynamicResource TextIconBrush}"/>
</MultiDataTrigger>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding IsSelected,RelativeSource={RelativeSource Self}}" Value="true"/>
<Condition Binding="{Binding SelectionUnit,RelativeSource={RelativeSource FindAncestor,AncestorType=DataGrid}}" Value="FullRow"/>
</MultiDataTrigger.Conditions>
<Setter Property="Foreground" Value="{DynamicResource TextIconBrush}"/>
</MultiDataTrigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsSelected" Value="true"/>
<Condition Property="Selector.IsSelectionActive" Value="false"/>
</MultiTrigger.Conditions>
<Setter Property="Foreground" Value="White"/>
<Setter Property="Background" Value="{DynamicResource DarkDefaultBrush}"/>
<Setter Property="Foreground" Value="{DynamicResource PrimaryTextBrush}"/>
</MultiTrigger>
</Style.Triggers>
</Style>
<Style x:Key="DataGridRowStyle" TargetType="DataGridRow">
<Setter Property="Background" Value="{DynamicResource RegionBrush}"/>
<Setter Property="Foreground" Value="{DynamicResource PrimaryTextBrush}"/>
<Setter Property="SnapsToDevicePixels" Value="true"/>
<Setter Property="Margin" Value="0,0,0,4"/>
<Setter Property="Padding" Value="0,6"/>
<Setter Property="MinHeight" Value="44"/>
<Setter Property="Validation.ErrorTemplate" Value="{x:Null}"/>
<Setter Property="ValidationErrorTemplate">
<Setter.Value>
<ControlTemplate>
<TextBlock Foreground="Red" Margin="2,0,0,0" Text="!" VerticalAlignment="Center"/>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="DataGridRow">
<SelectiveScrollingGrid>
<SelectiveScrollingGrid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</SelectiveScrollingGrid.ColumnDefinitions>
<SelectiveScrollingGrid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
</SelectiveScrollingGrid.RowDefinitions>
<Border CornerRadius="4" Grid.ColumnSpan="2" x:Name="DGR_Border" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" SnapsToDevicePixels="True"/>
<DataGridCellsPresenter MinHeight="{TemplateBinding MinHeight}" VerticalContentAlignment="Center" Grid.Row="0" Grid.Column="1" ItemsPanel="{TemplateBinding ItemsPanel}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
<DataGridDetailsPresenter Margin="0,6" Grid.Column="1" Grid.Row="1" SelectiveScrollingGrid.SelectiveScrollingOrientation="{Binding AreRowDetailsFrozen, ConverterParameter={x:Static SelectiveScrollingOrientation.Vertical}, Converter={x:Static DataGrid.RowDetailsScrollingConverter}, RelativeSource={RelativeSource AncestorType=DataGrid}}" Visibility="{TemplateBinding DetailsVisibility}"/>
<DataGridRowHeader Grid.Row="0" Grid.Column="0" SelectiveScrollingGrid.SelectiveScrollingOrientation="Vertical" Visibility="{Binding HeadersVisibility, ConverterParameter={x:Static DataGridHeadersVisibility.Row}, Converter={x:Static DataGrid.HeadersVisibilityConverter}, RelativeSource={RelativeSource AncestorType=DataGrid}}"/>
</SelectiveScrollingGrid>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="true">
<Setter Property="Background" Value="{DynamicResource DarkDefaultBrush}"/>
</Trigger>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Background" Value="{DynamicResource PrimaryBrush}"/>
<Setter Property="TextElement.Foreground" Value="{DynamicResource TextIconBrush}"/>
</Trigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsSelected" Value="true"/>
<Condition Property="Selector.IsSelectionActive" Value="false"/>
</MultiTrigger.Conditions>
<Setter Property="Background" Value="{DynamicResource DarkDefaultBrush}"/>
<Setter Property="Foreground" Value="{DynamicResource PrimaryTextBrush}"/>
</MultiTrigger>
</Style.Triggers>
</Style>
<Style x:Key="ColumnHeaderGripperStyle" TargetType="Thumb">
<Setter Property="Width" Value="8"/>
<Setter Property="Background" Value="Transparent"/>
<Setter Property="Cursor" Value="SizeWE"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Thumb">
<Border Background="{TemplateBinding Background}" Padding="{TemplateBinding Padding}"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="DataGridColumnHeaderStyle" TargetType="DataGridColumnHeader">
<Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="Foreground" Value="{DynamicResource PrimaryTextBrush}"/>
<Setter Property="Padding" Value="12,6,12,12"/>
<Setter Property="MinHeight" Value="44"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="DataGridColumnHeader">
<hc:SimplePanel>
<Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="Transparent" Padding="{TemplateBinding Padding}">
<Grid HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}">
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<ContentPresenter RecognizesAccessKey="True" VerticalAlignment="Center" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
<ToggleButton Grid.Column="1" VerticalAlignment="Center" Height="{x:Static system:Double.NaN}" Padding="4,0" Width="20" IsEnabled="False" Opacity="1" Foreground="{DynamicResource PrimaryBrush}" x:Name="ToggleButtonSortDirection" Style="{StaticResource ToggleButtonIconTransparent}" hc:IconSwitchElement.Geometry="{StaticResource DownGeometry}" hc:IconSwitchElement.GeometrySelected="{StaticResource UpGeometry}"/>
</Grid>
</Border>
<Thumb x:Name="PART_LeftHeaderGripper" HorizontalAlignment="Left" Style="{StaticResource ColumnHeaderGripperStyle}"/>
<Thumb x:Name="PART_RightHeaderGripper" HorizontalAlignment="Right" Style="{StaticResource ColumnHeaderGripperStyle}"/>
</hc:SimplePanel>
<ControlTemplate.Triggers>
<Trigger Property="SortDirection" Value="{x:Null}">
<Setter Property="Visibility" Value="Collapsed" TargetName="ToggleButtonSortDirection"/>
</Trigger>
<Trigger Property="SortDirection" Value="Ascending">
<Setter Property="IsChecked" Value="True" TargetName="ToggleButtonSortDirection"/>
</Trigger>
<Trigger Property="SortDirection" Value="Descending">
<Setter Property="IsChecked" Value="False" TargetName="ToggleButtonSortDirection"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="SortDirection" Value="Ascending">
<Setter Property="Foreground" Value="{DynamicResource PrimaryBrush}"/>
</Trigger>
<Trigger Property="SortDirection" Value="Descending">
<Setter Property="Foreground" Value="{DynamicResource PrimaryBrush}"/>
<Setter Property="Foreground" Value="{DynamicResource PrimaryBrush}"/>
</Trigger>
</Style.Triggers>
</Style>
<Style x:Key="DataGridRowHeaderStyle" TargetType="DataGridRowHeader">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="DataGridRowHeader">
<Grid HorizontalAlignment="Center">
<Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="Transparent" Padding="{TemplateBinding Padding}" >
<StackPanel Orientation="Horizontal">
<ContentPresenter RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="Center"/>
</StackPanel>
</Border>
<Thumb x:Name="PART_TopHeaderGripper" Style="{StaticResource RowHeaderGripperStyle}" VerticalAlignment="Top"/>
<Thumb x:Name="PART_BottomHeaderGripper" Style="{StaticResource RowHeaderGripperStyle}" VerticalAlignment="Bottom"/>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="TextBlockComboBoxStyle" TargetType="ComboBox">
<Setter Property="Focusable" Value="True"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ComboBox">
<TextBlock IsHitTestVisible="False" Text="{TemplateBinding Text}" TextTrimming="CharacterEllipsis"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="DataGridTextColumnStyle" TargetType="TextBlock">
<Setter Property="TextTrimming" Value="CharacterEllipsis"/>
</Style>
<Style TargetType="DataGrid">
<Style x:Key="DataGridBaseStyle" TargetType="DataGrid">
<Setter Property="Background" Value="{DynamicResource SecondaryRegionBrush}"/>
<Setter Property="BorderBrush" Value="{DynamicResource BorderBrush}"/>
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="GridLinesVisibility" Value="None"/>
<Setter Property="RowDetailsVisibilityMode" Value="VisibleWhenSelected"/>
<Setter Property="ScrollViewer.CanContentScroll" Value="true"/>
@@ -260,19 +21,21 @@
<Setter Property="RowStyle" Value="{StaticResource DataGridRowStyle}"/>
<Setter Property="CellStyle" Value="{StaticResource DataGridCellStyle}"/>
<Setter Property="Padding" Value="6"/>
<Setter Property="ColumnWidth" Value="*"/>
<Setter Property="RowHeight" Value="44"/>
<Setter Property="ColumnHeaderHeight" Value="44"/>
<Setter Property="hc:DataGridAttach.TextColumnStyle" Value="{StaticResource DataGridTextColumnStyle}"/>
<Setter Property="hc:DataGridAttach.EditingTextColumnStyle" Value="{StaticResource TextBoxBaseStyle}"/>
<Setter Property="hc:DataGridAttach.ComboBoxColumnStyle" Value="{StaticResource TextBlockComboBoxStyle}"/>
<Setter Property="hc:DataGridAttach.EditingComboBoxColumnStyle" Value="{StaticResource ComboBoxBaseStyle}"/>
<Setter Property="hc:DataGridAttach.EditingTextColumnStyle" Value="{StaticResource DataGridEditingTextColumnStyle}"/>
<Setter Property="hc:DataGridAttach.ComboBoxColumnStyle" Value="{StaticResource DataGridComboBoxColumnStyle}"/>
<Setter Property="hc:DataGridAttach.EditingComboBoxColumnStyle" Value="{StaticResource DataGridEditingComboBoxColumnStyle}"/>
<Setter Property="hc:DataGridAttach.CheckBoxColumnStyle" Value="{StaticResource CheckBoxBaseStyle}"/>
<Setter Property="hc:DataGridAttach.EditingCheckBoxColumnStyle" Value="{StaticResource CheckBoxBaseStyle}"/>
<Setter Property="hc:DataGridAttach.ApplyDefaultStyle" Value="True"/>
<Setter Property="hc:BorderElement.CornerRadius" Value="{StaticResource DefaultCornerRadius}" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="DataGrid">
<ControlTemplate.Resources>
<Storyboard x:Key="Storyboard1">
<Storyboard x:Key="StoryboardMouseEnter">
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="Opacity" Storyboard.TargetName="PART_VerticalScrollBar">
<EasingDoubleKeyFrame KeyTime="0:0:.2" Value=".8"/>
</DoubleAnimationUsingKeyFrames>
@@ -280,7 +43,7 @@
<EasingDoubleKeyFrame KeyTime="0:0:.2" Value=".8"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
<Storyboard x:Key="Storyboard2">
<Storyboard x:Key="StoryboardMouseLeave">
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="Opacity" Storyboard.TargetName="PART_VerticalScrollBar">
<EasingDoubleKeyFrame KeyTime="0:0:.2" Value="0"/>
</DoubleAnimationUsingKeyFrames>
@@ -289,49 +52,78 @@
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</ControlTemplate.Resources>
<Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Padding="{TemplateBinding Padding}" SnapsToDevicePixels="True">
<hc:ToggleBlock IsChecked="{Binding HasItems,RelativeSource={RelativeSource TemplatedParent},Mode=OneWay}" VerticalContentAlignment="Stretch" HorizontalContentAlignment="Stretch">
<hc:ToggleBlock.CheckedContent>
<ScrollViewer x:Name="DG_ScrollViewer" Focusable="false">
<ScrollViewer.Template>
<ControlTemplate TargetType="ScrollViewer">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Button Command="{x:Static DataGrid.SelectAllCommand}" Margin="0,0,0,6" Visibility="{Binding HeadersVisibility, ConverterParameter={x:Static DataGridHeadersVisibility.All}, Converter={x:Static DataGrid.HeadersVisibilityConverter}, RelativeSource={RelativeSource AncestorType=DataGrid}}" Width="{Binding CellsPanelHorizontalOffset, RelativeSource={RelativeSource AncestorType=DataGrid},Converter={StaticResource DoubleMinConverter}}" Style="{StaticResource ButtonIcon}" hc:IconElement.Geometry="{StaticResource AllGeometry}" Foreground="{DynamicResource PrimaryBrush}"/>
<DataGridColumnHeadersPresenter x:Name="PART_ColumnHeadersPresenter" Grid.ColumnSpan="2" Grid.Row="0" Grid.Column="1" Visibility="{Binding HeadersVisibility, ConverterParameter={x:Static DataGridHeadersVisibility.Column}, Converter={x:Static DataGrid.HeadersVisibilityConverter}, RelativeSource={RelativeSource AncestorType=DataGrid}}"/>
<ScrollContentPresenter x:Name="PART_ScrollContentPresenter" CanContentScroll="{TemplateBinding CanContentScroll}" Grid.ColumnSpan="3" Grid.Column="0" Grid.Row="1"/>
<ScrollBar Style="{StaticResource ScrollBarBaseStyle}" Opacity="0" x:Name="PART_VerticalScrollBar" Grid.Column="2" Maximum="{TemplateBinding ScrollableHeight}" Orientation="Vertical" Grid.Row="1" Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}" Value="{Binding VerticalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" ViewportSize="{TemplateBinding ViewportHeight}"/>
<ScrollBar Style="{StaticResource ScrollBarBaseStyle}" Opacity="0" x:Name="PART_HorizontalScrollBar" Grid.Column="1" Maximum="{TemplateBinding ScrollableWidth}" Orientation="Horizontal" VerticalAlignment="Bottom" Grid.Row="1" Visibility="{TemplateBinding ComputedHorizontalScrollBarVisibility}" Value="{Binding HorizontalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" ViewportSize="{TemplateBinding ViewportWidth}"/>
</Grid>
<ControlTemplate.Triggers>
<EventTrigger RoutedEvent="MouseEnter">
<BeginStoryboard Storyboard="{StaticResource Storyboard1}"/>
</EventTrigger>
<EventTrigger RoutedEvent="MouseLeave">
<BeginStoryboard Storyboard="{StaticResource Storyboard2}"/>
</EventTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</ScrollViewer.Template>
<ItemsPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
</ScrollViewer>
</hc:ToggleBlock.CheckedContent>
<hc:ToggleBlock.UnCheckedContent>
<hc:Empty />
</hc:ToggleBlock.UnCheckedContent>
</hc:ToggleBlock>
<Border CornerRadius="{Binding Path=(hc:BorderElement.CornerRadius),RelativeSource={RelativeSource TemplatedParent}}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Padding="{TemplateBinding Padding}" SnapsToDevicePixels="True">
<ScrollViewer x:Name="DG_ScrollViewer" Focusable="false">
<ScrollViewer.Template>
<ControlTemplate TargetType="ScrollViewer">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Button Command="{x:Static DataGrid.SelectAllCommand}" Width="{Binding CellsPanelHorizontalOffset, RelativeSource={RelativeSource AncestorType=DataGrid},Converter={StaticResource DoubleMinConverter}}" Style="{StaticResource ButtonIcon}" hc:IconElement.Geometry="{StaticResource AllGeometry}" Foreground="{DynamicResource PrimaryBrush}">
<Button.Visibility>
<MultiBinding Converter="{StaticResource DataGridSelectAllButtonVisibilityConverter}">
<Binding Path="HeadersVisibility" RelativeSource="{RelativeSource AncestorType=DataGrid}"/>
<Binding Path="(hc:DataGridAttach.ShowSelectAllButton)" RelativeSource="{RelativeSource AncestorType=DataGrid}"/>
</MultiBinding>
</Button.Visibility>
</Button>
<DataGridColumnHeadersPresenter x:Name="PART_ColumnHeadersPresenter" Grid.ColumnSpan="2" Grid.Row="0" Grid.Column="1" Visibility="{Binding HeadersVisibility, ConverterParameter={x:Static DataGridHeadersVisibility.Column}, Converter={x:Static DataGrid.HeadersVisibilityConverter}, RelativeSource={RelativeSource AncestorType=DataGrid}}"/>
<ScrollContentPresenter x:Name="PART_ScrollContentPresenter" CanContentScroll="{TemplateBinding CanContentScroll}" Grid.ColumnSpan="3" Grid.Column="0" Grid.Row="1" VerticalAlignment="Stretch" HorizontalAlignment="Stretch"/>
<hc:ToggleBlock VerticalContentAlignment="Stretch" HorizontalContentAlignment="Stretch" Grid.ColumnSpan="3" Grid.Column="0" Grid.Row="1" IsChecked="{Binding HasItems, RelativeSource={RelativeSource AncestorType=DataGrid}, Mode=OneWay}">
<hc:ToggleBlock.UnCheckedContent>
<hc:Empty Background="{DynamicResource RegionBrush}" BorderThickness="{TemplateBinding BorderThickness}" BorderBrush="{TemplateBinding BorderBrush}"/>
</hc:ToggleBlock.UnCheckedContent>
</hc:ToggleBlock>
<ScrollBar Style="{StaticResource ScrollBarBaseStyle}" Opacity="0" x:Name="PART_VerticalScrollBar" Grid.Column="2" Maximum="{TemplateBinding ScrollableHeight}" Orientation="Vertical" Grid.Row="1" Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}" Value="{Binding VerticalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" ViewportSize="{TemplateBinding ViewportHeight}"/>
<ScrollBar Style="{StaticResource ScrollBarBaseStyle}" Opacity="0" x:Name="PART_HorizontalScrollBar" Grid.Column="1" Maximum="{TemplateBinding ScrollableWidth}" Orientation="Horizontal" VerticalAlignment="Bottom" Grid.Row="1" Visibility="{TemplateBinding ComputedHorizontalScrollBarVisibility}" Value="{Binding HorizontalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" ViewportSize="{TemplateBinding ViewportWidth}"/>
</Grid>
<ControlTemplate.Triggers>
<EventTrigger RoutedEvent="MouseEnter">
<BeginStoryboard Storyboard="{StaticResource StoryboardMouseEnter}"/>
</EventTrigger>
<EventTrigger RoutedEvent="MouseLeave">
<BeginStoryboard Storyboard="{StaticResource StoryboardMouseLeave}"/>
</EventTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</ScrollViewer.Template>
<ItemsPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
</ScrollViewer>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style BasedOn="{StaticResource DataGridBaseStyle}" TargetType="DataGrid"/>
<Style x:Key="DataGridCellStyle.Small" BasedOn="{StaticResource DataGridCellStyle}" TargetType="DataGridCell">
<Setter Property="Padding" Value="6,2"/>
</Style>
<Style x:Key="DataGridRowStyle.Small" BasedOn="{StaticResource DataGridRowStyle}" TargetType="DataGridRow">
<Setter Property="Margin" Value="0,0,0,2"/>
</Style>
<Style x:Key="DataGridColumnHeaderStyle.Small" BasedOn="{StaticResource DataGridColumnHeaderStyle}" TargetType="DataGridColumnHeader">
<Setter Property="Padding" Value="8,0"/>
</Style>
<Style x:Key="DataGrid.Small" BasedOn="{StaticResource DataGridBaseStyle}" TargetType="DataGrid">
<Setter Property="CellStyle" Value="{StaticResource DataGridCellStyle.Small}"/>
<Setter Property="RowStyle" Value="{StaticResource DataGridRowStyle.Small}"/>
<Setter Property="ColumnHeaderStyle" Value="{StaticResource DataGridColumnHeaderStyle.Small}"/>
<Setter Property="RowHeight" Value="24"/>
<Setter Property="ColumnHeaderHeight" Value="20"/>
<Setter Property="hc:DataGridAttach.EditingTextColumnStyle" Value="{StaticResource DataGridEditingTextColumnStyle.Small}"/>
<Setter Property="hc:DataGridAttach.EditingComboBoxColumnStyle" Value="{StaticResource DataGridEditingComboBoxColumnStyle.Small}"/>
</Style>
</ResourceDictionary>
@@ -1,169 +1,116 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:hc="clr-namespace:HandyControl.Controls"
xmlns:themes="clr-namespace:HandyControl.Themes">
xmlns:hc="clr-namespace:HandyControl.Controls">
<ResourceDictionary.MergedDictionaries>
<themes:SharedResourceDictionary Source="pack://application:,,,/HandyControl;component/Themes/Basic/Sizes.xaml"/>
<themes:SharedResourceDictionary Source="pack://application:,,,/HandyControl;component/Themes/Styles/Base/ScrollViewerBaseStyle.xaml"/>
</ResourceDictionary.MergedDictionaries>
<Style x:Key="GridViewColumnHeaderGripper" TargetType="Thumb">
<Setter Property="Canvas.Right" Value="-9"/>
<Setter Property="Width" Value="18"/>
<Setter Property="Height" Value="{Binding ActualHeight, RelativeSource={RelativeSource TemplatedParent}}"/>
<Setter Property="Padding" Value="0"/>
<Setter Property="Background" Value="Transparent"/>
<Style x:Key="ListViewBaseStyle" TargetType="ListView">
<Setter Property="Background" Value="{DynamicResource SecondaryRegionBrush}" />
<Setter Property="BorderBrush" Value="{DynamicResource BorderBrush}" />
<Setter Property="BorderThickness" Value="1" />
<Setter Property="Padding" Value="6" />
<Setter Property="Foreground" Value="{DynamicResource PrimaryTextBrush}" />
<Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Auto" />
<Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto" />
<Setter Property="ScrollViewer.CanContentScroll" Value="true" />
<Setter Property="ScrollViewer.PanningMode" Value="Both" />
<Setter Property="Stylus.IsFlicksEnabled" Value="False" />
<Setter Property="VerticalContentAlignment" Value="Center" />
<Setter Property="ItemContainerStyle" Value="{StaticResource ListViewItemBaseStyle}" />
<Setter Property="hc:GridViewAttach.ColumnHeaderHeight" Value="44" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Thumb">
<Border Background="Transparent" Padding="{TemplateBinding Padding}">
<Rectangle Fill="{TemplateBinding Background}" HorizontalAlignment="Center" Width="1"/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style TargetType="GridViewColumnHeader">
<Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="HorizontalContentAlignment" Value="Left"/>
<Setter Property="Foreground" Value="{DynamicResource PrimaryTextBrush}"/>
<Setter Property="Padding" Value="12,6,12,12"/>
<Setter Property="MinHeight" Value="44"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="GridViewColumnHeader">
<Grid SnapsToDevicePixels="true">
<Border x:Name="HeaderBorder" BorderBrush="{TemplateBinding BorderBrush}" Background="Transparent">
<ContentPresenter x:Name="HeaderContent" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
</Border>
<Canvas>
<Thumb x:Name="PART_HeaderGripper" Style="{StaticResource GridViewColumnHeaderGripper}"/>
</Canvas>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="ListViewItemBaseStyle" TargetType="ListViewItem">
<Setter Property="Background" Value="{DynamicResource RegionBrush}"/>
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="Foreground" Value="{DynamicResource PrimaryTextBrush}"/>
<Setter Property="SnapsToDevicePixels" Value="true"/>
<Setter Property="Margin" Value="0,0,0,4"/>
<Setter Property="Padding" Value="{StaticResource DefaultControlPadding}"/>
<Setter Property="MinHeight" Value="44"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListViewItem">
<Border CornerRadius="4" x:Name="Bd" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Padding="{TemplateBinding Padding}" SnapsToDevicePixels="true">
<GridViewRowPresenter Content="{TemplateBinding Content}" Columns="{TemplateBinding GridView.ColumnCollection}"/>
<ControlTemplate TargetType="ListView">
<ControlTemplate.Resources>
<Storyboard x:Key="Storyboard1">
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="Opacity" Storyboard.TargetName="PART_VerticalScrollBar">
<EasingDoubleKeyFrame KeyTime="0:0:.2" Value=".8" />
</DoubleAnimationUsingKeyFrames>
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="Opacity" Storyboard.TargetName="PART_HorizontalScrollBar">
<EasingDoubleKeyFrame KeyTime="0:0:.2" Value=".8" />
</DoubleAnimationUsingKeyFrames>
</Storyboard>
<Storyboard x:Key="Storyboard2">
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="Opacity" Storyboard.TargetName="PART_VerticalScrollBar">
<EasingDoubleKeyFrame KeyTime="0:0:.2" Value="0" />
</DoubleAnimationUsingKeyFrames>
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="Opacity" Storyboard.TargetName="PART_HorizontalScrollBar">
<EasingDoubleKeyFrame KeyTime="0:0:.2" Value="0" />
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</ControlTemplate.Resources>
<Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Padding="{TemplateBinding Padding}" SnapsToDevicePixels="True">
<ScrollViewer Focusable="false">
<ScrollViewer.Template>
<ControlTemplate TargetType="ScrollViewer">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<DockPanel Grid.ColumnSpan="2">
<ScrollViewer DockPanel.Dock="Top" HorizontalScrollBarVisibility="Hidden" VerticalScrollBarVisibility="Hidden" Focusable="false">
<GridViewHeaderRowPresenter AllowsColumnReorder="{Binding View.AllowsColumnReorder, RelativeSource={RelativeSource AncestorType=ListView}}" ColumnHeaderContainerStyle="{Binding View.ColumnHeaderContainerStyle, RelativeSource={RelativeSource AncestorType=ListView}}" ColumnHeaderToolTip="{Binding View.ColumnHeaderToolTip, RelativeSource={RelativeSource AncestorType=ListView}}" ColumnHeaderContextMenu="{Binding View.ColumnHeaderContextMenu, RelativeSource={RelativeSource AncestorType=ListView}}" ColumnHeaderTemplate="{Binding View.ColumnHeaderTemplate, RelativeSource={RelativeSource AncestorType=ListView}}" ColumnHeaderTemplateSelector="{Binding View.ColumnHeaderTemplateSelector, RelativeSource={RelativeSource AncestorType=ListView}}" Columns="{Binding View.Columns, RelativeSource={RelativeSource AncestorType=ListView}}" Margin="2,0" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
</ScrollViewer>
</DockPanel>
<hc:ToggleBlock Grid.Row="1" Grid.ColumnSpan="2" Grid.RowSpan="2" IsChecked="{Binding HasItems,RelativeSource={RelativeSource AncestorType=ListView},Mode=OneWay}" VerticalContentAlignment="Stretch" HorizontalContentAlignment="Stretch">
<hc:ToggleBlock.CheckedContent>
<ScrollContentPresenter x:Name="PART_ScrollContentPresenter" CanContentScroll="{TemplateBinding CanContentScroll}" />
</hc:ToggleBlock.CheckedContent>
<hc:ToggleBlock.UnCheckedContent>
<hc:Empty />
</hc:ToggleBlock.UnCheckedContent>
</hc:ToggleBlock>
<ScrollBar Style="{StaticResource ScrollBarBaseStyle}" Opacity="0" x:Name="PART_VerticalScrollBar" Grid.Column="1" Grid.Row="1" Maximum="{TemplateBinding ScrollableHeight}" Orientation="Vertical" Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}" Value="{Binding VerticalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" ViewportSize="{TemplateBinding ViewportHeight}" />
<ScrollBar Style="{StaticResource ScrollBarBaseStyle}" Opacity="0" x:Name="PART_HorizontalScrollBar" Grid.Row="1" Maximum="{TemplateBinding ScrollableWidth}" Orientation="Horizontal" VerticalAlignment="Bottom" Visibility="{TemplateBinding ComputedHorizontalScrollBarVisibility}" Value="{Binding HorizontalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" ViewportSize="{TemplateBinding ViewportWidth}" />
</Grid>
<ControlTemplate.Triggers>
<EventTrigger RoutedEvent="MouseEnter">
<BeginStoryboard Storyboard="{StaticResource Storyboard1}" />
</EventTrigger>
<EventTrigger RoutedEvent="MouseLeave">
<BeginStoryboard Storyboard="{StaticResource Storyboard2}" />
</EventTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</ScrollViewer.Template>
<ItemsPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
</ScrollViewer>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="true">
<Setter Property="Background" Value="{DynamicResource DarkDefaultBrush}"/>
<Trigger Property="View" Value="{x:Null}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListView">
<Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Padding="{TemplateBinding Padding}" SnapsToDevicePixels="True">
<ScrollViewer Focusable="false">
<ItemsPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
</ScrollViewer>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Trigger>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Background" Value="{DynamicResource PrimaryBrush}"/>
<Setter Property="TextElement.Foreground" Value="{DynamicResource TextIconBrush}"/>
</Trigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsSelected" Value="true"/>
<Condition Property="Selector.IsSelectionActive" Value="false"/>
</MultiTrigger.Conditions>
<Setter Property="Background" Value="{DynamicResource DarkDefaultBrush}"/>
<Setter Property="Foreground" Value="{DynamicResource PrimaryTextBrush}"/>
</MultiTrigger>
</Style.Triggers>
</Style>
<Style x:Key="ListViewScrollViewerStyle" TargetType="ScrollViewer">
<Setter Property="Focusable" Value="False"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ScrollViewer">
<ControlTemplate.Resources>
<Storyboard x:Key="Storyboard1">
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="Opacity" Storyboard.TargetName="PART_VerticalScrollBar">
<EasingDoubleKeyFrame KeyTime="0:0:.2" Value=".8"/>
</DoubleAnimationUsingKeyFrames>
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="Opacity" Storyboard.TargetName="PART_HorizontalScrollBar">
<EasingDoubleKeyFrame KeyTime="0:0:.2" Value=".8"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
<Storyboard x:Key="Storyboard2">
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="Opacity" Storyboard.TargetName="PART_VerticalScrollBar">
<EasingDoubleKeyFrame KeyTime="0:0:.2" Value="0"/>
</DoubleAnimationUsingKeyFrames>
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="Opacity" Storyboard.TargetName="PART_HorizontalScrollBar">
<EasingDoubleKeyFrame KeyTime="0:0:.2" Value="0"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</ControlTemplate.Resources>
<Grid Background="{TemplateBinding Background}" SnapsToDevicePixels="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<GridViewHeaderRowPresenter Grid.ColumnSpan="2" AllowsColumnReorder="{Binding TemplatedParent.View.AllowsColumnReorder, RelativeSource={RelativeSource TemplatedParent}}" ColumnHeaderContainerStyle="{Binding TemplatedParent.View.ColumnHeaderContainerStyle, RelativeSource={RelativeSource TemplatedParent}}" ColumnHeaderToolTip="{Binding TemplatedParent.View.ColumnHeaderToolTip, RelativeSource={RelativeSource TemplatedParent}}" ColumnHeaderContextMenu="{Binding TemplatedParent.View.ColumnHeaderContextMenu, RelativeSource={RelativeSource TemplatedParent}}" ColumnHeaderTemplate="{Binding TemplatedParent.View.ColumnHeaderTemplate, RelativeSource={RelativeSource TemplatedParent}}" Columns="{Binding TemplatedParent.View.Columns, RelativeSource={RelativeSource TemplatedParent}}" Margin="2,0" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
<ScrollContentPresenter x:Name="PART_ScrollContentPresenter" Grid.ColumnSpan="2" Grid.Row="1" CanContentScroll="{TemplateBinding CanContentScroll}" CanHorizontallyScroll="False" CanVerticallyScroll="False" ContentTemplate="{TemplateBinding ContentTemplate}" Content="{TemplateBinding Content}" KeyboardNavigation.DirectionalNavigation="Local" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
<ScrollBar Style="{StaticResource ScrollBarBaseStyle}" Opacity="0" x:Name="PART_VerticalScrollBar" Grid.Column="1" Maximum="{TemplateBinding ScrollableHeight}" Orientation="Vertical" Grid.Row="1" Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}" Value="{Binding VerticalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" ViewportSize="{TemplateBinding ViewportHeight}"/>
<ScrollBar Style="{StaticResource ScrollBarBaseStyle}" Opacity="0" x:Name="PART_HorizontalScrollBar" Grid.Column="0" Maximum="{TemplateBinding ScrollableWidth}" Orientation="Horizontal" VerticalAlignment="Bottom" Grid.Row="1" Visibility="{TemplateBinding ComputedHorizontalScrollBarVisibility}" Value="{Binding HorizontalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" ViewportSize="{TemplateBinding ViewportWidth}"/>
</Grid>
<ControlTemplate.Triggers>
<EventTrigger RoutedEvent="MouseEnter">
<BeginStoryboard Storyboard="{StaticResource Storyboard1}"/>
</EventTrigger>
<EventTrigger RoutedEvent="MouseLeave">
<BeginStoryboard Storyboard="{StaticResource Storyboard2}"/>
</EventTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style BasedOn="{StaticResource ListViewBaseStyle}" TargetType="ListView" />
<Style x:Key="ListViewItemBaseStyle.Small" BasedOn="{StaticResource ListViewItemBaseStyle}" TargetType="ListViewItem">
<Setter Property="Padding" Value="6,2" />
<Setter Property="MinHeight" Value="24" />
<Setter Property="Margin" Value="0,0,0,2" />
</Style>
<Style TargetType="ListView">
<Setter Property="Background" Value="{DynamicResource SecondaryRegionBrush}"/>
<Setter Property="BorderBrush" Value="{DynamicResource BorderBrush}"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="Padding" Value="6"/>
<Setter Property="Foreground" Value="{DynamicResource PrimaryTextBrush}"/>
<Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Auto"/>
<Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto"/>
<Setter Property="ScrollViewer.CanContentScroll" Value="true"/>
<Setter Property="ScrollViewer.PanningMode" Value="Both"/>
<Setter Property="Stylus.IsFlicksEnabled" Value="False"/>
<Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="ItemContainerStyle" Value="{StaticResource ListViewItemBaseStyle}"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListView">
<Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Padding="{TemplateBinding Padding}" SnapsToDevicePixels="True">
<hc:ToggleBlock IsChecked="{Binding HasItems,RelativeSource={RelativeSource TemplatedParent},Mode=OneWay}" VerticalContentAlignment="Stretch" HorizontalContentAlignment="Stretch">
<hc:ToggleBlock.CheckedContent>
<ScrollViewer Style="{StaticResource ListViewScrollViewerStyle}">
<ItemsPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
</ScrollViewer>
</hc:ToggleBlock.CheckedContent>
<hc:ToggleBlock.UnCheckedContent>
<hc:Empty />
</hc:ToggleBlock.UnCheckedContent>
</hc:ToggleBlock>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style x:Key="ListView.Small" BasedOn="{StaticResource ListViewBaseStyle}" TargetType="ListView">
<Setter Property="ItemContainerStyle" Value="{StaticResource ListViewItemBaseStyle.Small}" />
<Setter Property="hc:GridViewAttach.ColumnHeaderHeight" Value="30" />
</Style>
</ResourceDictionary>
@@ -2,12 +2,7 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:hc="clr-namespace:HandyControl.Controls"
xmlns:shell="clr-namespace:Microsoft.Windows.Shell"
xmlns:interactivity="clr-namespace:HandyControl.Interactivity"
xmlns:themes="clr-namespace:HandyControl.Themes">
<ResourceDictionary.MergedDictionaries>
<themes:SharedResourceDictionary Source="pack://application:,,,/HandyControl;component/Themes/Styles/Window.xaml"/>
</ResourceDictionary.MergedDictionaries>
xmlns:interactivity="clr-namespace:HandyControl.Interactivity">
<Style x:Key="MessageBoxButtonStyle" BasedOn="{StaticResource ButtonDefault}" TargetType="Button">
<Setter Property="MinWidth" Value="88"/>
@@ -73,23 +68,25 @@
<ContentPresenter shell:WindowChrome.IsHitTestVisibleInChrome="True" Grid.Column="2" x:Name="ContentPresenterMain" Content="{TemplateBinding NonClientAreaContent}"/>
</Grid>
</Grid>
<Grid Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Path Data="{TemplateBinding Image}" Fill="{TemplateBinding ImageBrush}" HorizontalAlignment="Center" Visibility="{TemplateBinding ShowImage,Converter={StaticResource Boolean2VisibilityConverter}}" Grid.Row="0" Grid.Column="0" VerticalAlignment="Top" Margin="20,32,0,0" Width="30" Height="30" Stretch="Uniform"/>
<ScrollViewer Grid.Row="0" Grid.Column="1" VerticalAlignment="Top">
<Border MinHeight="30" Margin="10,32,10,10" HorizontalAlignment="Left">
<TextBlock VerticalAlignment="Center" Text="{TemplateBinding Message}" TextWrapping="Wrap" />
</Border>
</ScrollViewer>
<StackPanel Name="PART_Panel" Grid.Column="0" Grid.ColumnSpan="2" Grid.Row="1" Margin="0,10,0,16" Orientation="Horizontal" HorizontalAlignment="Center"/>
</Grid>
<AdornerDecorator Grid.Row="1">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Path Data="{TemplateBinding Image}" Fill="{TemplateBinding ImageBrush}" HorizontalAlignment="Center" Visibility="{TemplateBinding ShowImage,Converter={StaticResource Boolean2VisibilityConverter}}" Grid.Row="0" Grid.Column="0" VerticalAlignment="Top" Margin="20,32,0,0" Width="30" Height="30" Stretch="Uniform"/>
<ScrollViewer Grid.Row="0" Grid.Column="1" VerticalAlignment="Top">
<Border MinHeight="30" Margin="10,32,10,10" HorizontalAlignment="Left">
<TextBlock VerticalAlignment="Center" Text="{TemplateBinding Message}" TextWrapping="Wrap" />
</Border>
</ScrollViewer>
<StackPanel Name="PART_Panel" Grid.Column="0" Grid.ColumnSpan="2" Grid.Row="1" Margin="0,10,0,16" Orientation="Horizontal" HorizontalAlignment="Center"/>
</Grid>
</AdornerDecorator>
</Grid>
</Border>
<ControlTemplate.Triggers>
@@ -2,14 +2,7 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:hc="clr-namespace:HandyControl.Controls"
xmlns:shell="clr-namespace:Microsoft.Windows.Shell"
xmlns:interactivity="clr-namespace:HandyControl.Interactivity"
xmlns:themes="clr-namespace:HandyControl.Themes">
<ResourceDictionary.MergedDictionaries>
<themes:SharedResourceDictionary Source="pack://application:,,,/HandyControl;component/Themes/Styles/Button.xaml"/>
<themes:SharedResourceDictionary Source="pack://application:,,,/HandyControl;component/Themes/Basic/Converters.xaml"/>
<themes:SharedResourceDictionary Source="pack://application:,,,/HandyControl;component/Themes/Basic/Geometries.xaml"/>
</ResourceDictionary.MergedDictionaries>
xmlns:interactivity="clr-namespace:HandyControl.Interactivity">
<LinearGradientBrush x:Key="ResizeGripperForeground" EndPoint="1,0.75" StartPoint="0,0.25">
<GradientStop Color="#FFFFFF" Offset="0.3"/>
@@ -26,7 +19,7 @@
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ResizeGrip">
<Grid Background="{TemplateBinding Background}" SnapsToDevicePixels="true">
<hc:SimplePanel Background="{TemplateBinding Background}" SnapsToDevicePixels="true">
<Path Width="11" Height="11" Data="M 9,0 L 11,0 L 11,11 L 0,11 L 0,9 L 3,9 L 3,6 L 6,6 L 6,3 L 9,3 z" HorizontalAlignment="Right" VerticalAlignment="Bottom">
<Path.Fill>
<DrawingBrush TileMode="Tile" Viewbox="0,0,3,3" Viewport="0,0,3,3" ViewportUnits="Absolute" ViewboxUnits="Absolute">
@@ -42,7 +35,7 @@
</DrawingBrush>
</Path.Fill>
</Path>
</Grid>
</hc:SimplePanel>
</ControlTemplate>
</Setter.Value>
</Setter>
@@ -54,8 +47,207 @@
<Setter Property="UseLayoutRounding" Value="True"/>
</Style>
<Style x:Key="WindowWin10" BasedOn="{x:Null}" TargetType="hc:Window">
<Setter Property="OverridesDefaultStyle" Value="True"/>
<ControlTemplate x:Key="WindowWin10Template" TargetType="hc:Window">
<Border SnapsToDevicePixels="True" BorderThickness="{TemplateBinding BorderThickness}" BorderBrush="{TemplateBinding BorderBrush}" Background="{TemplateBinding Background}">
<Grid Margin="{TemplateBinding Padding}">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition />
</Grid.RowDefinitions>
<Grid Background="{TemplateBinding NonClientAreaBackground}" Name="PART_NonClientArea" TextElement.Foreground="{TemplateBinding NonClientAreaForeground}">
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<StackPanel Name="ButtonPanel" shell:WindowChrome.IsHitTestVisibleInChrome="True" UseLayoutRounding="True" VerticalAlignment="Top" Grid.Column="1" HorizontalAlignment="Right" Orientation="Horizontal">
<Button Background="{TemplateBinding OtherButtonBackground}" Foreground="{TemplateBinding OtherButtonForeground}" Command="shell:SystemCommands.MinimizeWindowCommand" IsTabStop="False" Name="ButtonMin" Height="29" Style="{StaticResource ButtonIcon}" Width="45" hc:IconElement.Geometry="{StaticResource WindowMinGeometry}" BorderThickness="1,0,1,0" hc:IconElement.Width="10" hc:IconElement.Height="10" />
<Button Background="{TemplateBinding OtherButtonBackground}" Foreground="{TemplateBinding OtherButtonForeground}" Command="shell:SystemCommands.MaximizeWindowCommand" IsTabStop="False" Name="ButtonMax" Height="29" Style="{StaticResource ButtonIcon}" Width="46" hc:IconElement.Geometry="{StaticResource WindowMaxGeometry}" BorderThickness="1,0,1,0" hc:IconElement.Width="10" hc:IconElement.Height="10" />
<Button Background="{TemplateBinding OtherButtonBackground}" Foreground="{TemplateBinding OtherButtonForeground}" Command="shell:SystemCommands.RestoreWindowCommand" IsTabStop="False" Name="ButtonRestore" Height="29" Style="{StaticResource ButtonIcon}" Width="46" hc:IconElement.Geometry="{StaticResource WindowRestoreGeometry}" BorderThickness="1,0,1,0" hc:IconElement.Width="10" hc:IconElement.Height="10" />
<Button Background="{TemplateBinding CloseButtonBackground}" Foreground="{TemplateBinding CloseButtonForeground}" Command="shell:SystemCommands.CloseWindowCommand" IsTabStop="False" Name="ButtonClose" Height="29" Style="{StaticResource ButtonIcon}" Width="46" hc:IconElement.Geometry="{StaticResource CloseGeometry}" BorderThickness="1,0,0,0" hc:IconElement.Width="10" hc:IconElement.Height="10" />
</StackPanel>
<Grid Grid.Column="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Button Name="ButtonIcon" Visibility="{TemplateBinding Icon,Converter={StaticResource Object2VisibilityConverter}}" Command="{x:Static shell:SystemCommands.ShowSystemMenuCommand}" Background="Transparent" Margin="10,0,0,0" shell:WindowChrome.IsHitTestVisibleInChrome="True" Style="{StaticResource ButtonCustom}" VerticalAlignment="Center">
<interactivity:Interaction.Triggers>
<interactivity:EventTrigger EventName="MouseDoubleClick">
<interactivity:InvokeCommandAction Command="{x:Static shell:SystemCommands.CloseWindowCommand}" />
</interactivity:EventTrigger>
</interactivity:Interaction.Triggers>
<Image IsHitTestVisible="False" Source="{TemplateBinding Icon}" VerticalAlignment="Center" Width="16" Height="16" />
</Button>
<TextBlock Grid.Column="1" Text="{TemplateBinding Title}" Padding="10,0,0,0" VerticalAlignment="Center">
<TextBlock.Visibility>
<MultiBinding Converter="{StaticResource BooleanArr2VisibilityConverter}">
<MultiBinding.Bindings>
<Binding Path="ShowTitle" RelativeSource="{RelativeSource TemplatedParent}" />
<Binding Path="Title" RelativeSource="{RelativeSource TemplatedParent}" Converter="{StaticResource Object2BooleanConverter}" />
</MultiBinding.Bindings>
</MultiBinding>
</TextBlock.Visibility>
</TextBlock>
<ContentPresenter shell:WindowChrome.IsHitTestVisibleInChrome="True" Grid.Column="2" x:Name="ContentPresenterMain" Content="{TemplateBinding NonClientAreaContent}" />
</Grid>
</Grid>
<AdornerDecorator Grid.Row="1">
<ContentPresenter ClipToBounds="True" />
</AdornerDecorator>
<ResizeGrip Width="10" Height="10" x:Name="ResizeGrip" HorizontalAlignment="Right" VerticalAlignment="Bottom" Grid.Row="1" IsTabStop="False" Visibility="Collapsed" />
</Grid>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsActive" Value="False">
<Setter Property="Opacity" Value=".8" TargetName="ContentPresenterMain" />
<Setter Property="Opacity" Value=".8" TargetName="ButtonPanel" />
</Trigger>
<Trigger Property="WindowState" Value="Maximized">
<Setter Property="Visibility" Value="Collapsed" TargetName="ButtonMax" />
<Setter Property="Visibility" Value="Visible" TargetName="ButtonRestore" />
</Trigger>
<Trigger Property="WindowState" Value="Normal">
<Setter Property="Visibility" Value="Visible" TargetName="ButtonMax" />
<Setter Property="Visibility" Value="Collapsed" TargetName="ButtonRestore" />
</Trigger>
<Trigger Property="ResizeMode" Value="NoResize">
<Setter Property="Visibility" Value="Collapsed" TargetName="ButtonMin" />
<Setter Property="Visibility" Value="Collapsed" TargetName="ButtonMax" />
<Setter Property="Visibility" Value="Collapsed" TargetName="ButtonRestore" />
</Trigger>
<Trigger Property="ResizeMode" Value="CanMinimize">
<Setter Property="Visibility" Value="Collapsed" TargetName="ButtonMax" />
<Setter Property="Visibility" Value="Collapsed" TargetName="ButtonRestore" />
</Trigger>
<Trigger Property="IsMouseOver" Value="True" SourceName="ButtonClose">
<Setter Property="Background" TargetName="ButtonClose" Value="{Binding CloseButtonHoverBackground,RelativeSource={RelativeSource TemplatedParent}}" />
<Setter Property="Foreground" TargetName="ButtonClose" Value="{Binding CloseButtonHoverForeground,RelativeSource={RelativeSource TemplatedParent}}" />
</Trigger>
<Trigger Property="IsMouseOver" Value="True" SourceName="ButtonMax">
<Setter Property="Background" TargetName="ButtonMax" Value="{Binding OtherButtonHoverBackground,RelativeSource={RelativeSource TemplatedParent}}" />
<Setter Property="Foreground" TargetName="ButtonMax" Value="{Binding OtherButtonHoverForeground,RelativeSource={RelativeSource TemplatedParent}}" />
</Trigger>
<Trigger Property="IsMouseOver" Value="True" SourceName="ButtonRestore">
<Setter Property="Background" TargetName="ButtonRestore" Value="{Binding OtherButtonHoverBackground,RelativeSource={RelativeSource TemplatedParent}}" />
<Setter Property="Foreground" TargetName="ButtonRestore" Value="{Binding OtherButtonHoverForeground,RelativeSource={RelativeSource TemplatedParent}}" />
</Trigger>
<Trigger Property="IsMouseOver" Value="True" SourceName="ButtonMin">
<Setter Property="Background" TargetName="ButtonMin" Value="{Binding OtherButtonHoverBackground,RelativeSource={RelativeSource TemplatedParent}}" />
<Setter Property="Foreground" TargetName="ButtonMin" Value="{Binding OtherButtonHoverForeground,RelativeSource={RelativeSource TemplatedParent}}" />
</Trigger>
<Trigger Property="WindowStyle" Value="None">
<Setter Property="ShowNonClientArea" Value="False" />
</Trigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="ResizeMode" Value="CanResizeWithGrip" />
<Condition Property="WindowState" Value="Normal" />
</MultiTrigger.Conditions>
<Setter TargetName="ResizeGrip" Property="Visibility" Value="Visible" />
</MultiTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
<ControlTemplate x:Key="WindowWin10ExtendContentToNonClientTemplate" TargetType="hc:Window">
<Border SnapsToDevicePixels="True" BorderThickness="{TemplateBinding BorderThickness}" BorderBrush="{TemplateBinding BorderBrush}" Background="{TemplateBinding Background}">
<hc:SimplePanel Margin="{TemplateBinding Padding}">
<AdornerDecorator>
<hc:SimplePanel>
<ContentPresenter ClipToBounds="True" />
<Grid Background="{TemplateBinding NonClientAreaBackground}" Name="PART_NonClientArea" TextElement.Foreground="{TemplateBinding NonClientAreaForeground}" VerticalAlignment="Top">
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<StackPanel Name="ButtonPanel" shell:WindowChrome.IsHitTestVisibleInChrome="True" UseLayoutRounding="True" VerticalAlignment="Top" Grid.Column="1" HorizontalAlignment="Right" Orientation="Horizontal">
<Button Background="{TemplateBinding OtherButtonBackground}" Foreground="{TemplateBinding OtherButtonForeground}" Command="shell:SystemCommands.MinimizeWindowCommand" IsTabStop="False" Name="ButtonMin" Height="29" Style="{StaticResource ButtonIcon}" Width="45" hc:IconElement.Geometry="{StaticResource WindowMinGeometry}" BorderThickness="1,0,1,0" hc:IconElement.Width="10" hc:IconElement.Height="10" />
<Button Background="{TemplateBinding OtherButtonBackground}" Foreground="{TemplateBinding OtherButtonForeground}" Command="shell:SystemCommands.MaximizeWindowCommand" IsTabStop="False" Name="ButtonMax" Height="29" Style="{StaticResource ButtonIcon}" Width="46" hc:IconElement.Geometry="{StaticResource WindowMaxGeometry}" BorderThickness="1,0,1,0" hc:IconElement.Width="10" hc:IconElement.Height="10" />
<Button Background="{TemplateBinding OtherButtonBackground}" Foreground="{TemplateBinding OtherButtonForeground}" Command="shell:SystemCommands.RestoreWindowCommand" IsTabStop="False" Name="ButtonRestore" Height="29" Style="{StaticResource ButtonIcon}" Width="46" hc:IconElement.Geometry="{StaticResource WindowRestoreGeometry}" BorderThickness="1,0,1,0" hc:IconElement.Width="10" hc:IconElement.Height="10" />
<Button Background="{TemplateBinding CloseButtonBackground}" Foreground="{TemplateBinding CloseButtonForeground}" Command="shell:SystemCommands.CloseWindowCommand" IsTabStop="False" Name="ButtonClose" Height="29" Style="{StaticResource ButtonIcon}" Width="46" hc:IconElement.Geometry="{StaticResource CloseGeometry}" BorderThickness="1,0,0,0" hc:IconElement.Width="10" hc:IconElement.Height="10" />
</StackPanel>
<Grid Grid.Column="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Button Name="ButtonIcon" Visibility="{TemplateBinding Icon,Converter={StaticResource Object2VisibilityConverter}}" Command="{x:Static shell:SystemCommands.ShowSystemMenuCommand}" Background="Transparent" Margin="10,0,0,0" shell:WindowChrome.IsHitTestVisibleInChrome="True" Style="{StaticResource ButtonCustom}" VerticalAlignment="Center">
<interactivity:Interaction.Triggers>
<interactivity:EventTrigger EventName="MouseDoubleClick">
<interactivity:InvokeCommandAction Command="{x:Static shell:SystemCommands.CloseWindowCommand}" />
</interactivity:EventTrigger>
</interactivity:Interaction.Triggers>
<Image IsHitTestVisible="False" Source="{TemplateBinding Icon}" VerticalAlignment="Center" Width="16" Height="16" />
</Button>
<TextBlock Grid.Column="1" Text="{TemplateBinding Title}" Padding="10,0,0,0" VerticalAlignment="Center">
<TextBlock.Visibility>
<MultiBinding Converter="{StaticResource BooleanArr2VisibilityConverter}">
<MultiBinding.Bindings>
<Binding Path="ShowTitle" RelativeSource="{RelativeSource TemplatedParent}" />
<Binding Path="Title" RelativeSource="{RelativeSource TemplatedParent}" Converter="{StaticResource Object2BooleanConverter}" />
</MultiBinding.Bindings>
</MultiBinding>
</TextBlock.Visibility>
</TextBlock>
</Grid>
</Grid>
</hc:SimplePanel>
</AdornerDecorator>
<ResizeGrip Width="10" Height="10" x:Name="ResizeGrip" HorizontalAlignment="Right" VerticalAlignment="Bottom" Grid.Row="1" IsTabStop="False" Visibility="Collapsed" />
</hc:SimplePanel>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsActive" Value="False">
<Setter Property="Opacity" Value=".8" TargetName="ButtonPanel" />
</Trigger>
<Trigger Property="WindowState" Value="Maximized">
<Setter Property="Visibility" Value="Collapsed" TargetName="ButtonMax" />
<Setter Property="Visibility" Value="Visible" TargetName="ButtonRestore" />
</Trigger>
<Trigger Property="WindowState" Value="Normal">
<Setter Property="Visibility" Value="Visible" TargetName="ButtonMax" />
<Setter Property="Visibility" Value="Collapsed" TargetName="ButtonRestore" />
</Trigger>
<Trigger Property="ResizeMode" Value="NoResize">
<Setter Property="Visibility" Value="Collapsed" TargetName="ButtonMin" />
<Setter Property="Visibility" Value="Collapsed" TargetName="ButtonMax" />
<Setter Property="Visibility" Value="Collapsed" TargetName="ButtonRestore" />
</Trigger>
<Trigger Property="ResizeMode" Value="CanMinimize">
<Setter Property="Visibility" Value="Collapsed" TargetName="ButtonMax" />
<Setter Property="Visibility" Value="Collapsed" TargetName="ButtonRestore" />
</Trigger>
<Trigger Property="IsMouseOver" Value="True" SourceName="ButtonClose">
<Setter Property="Background" TargetName="ButtonClose" Value="{Binding CloseButtonHoverBackground,RelativeSource={RelativeSource TemplatedParent}}" />
<Setter Property="Foreground" TargetName="ButtonClose" Value="{Binding CloseButtonHoverForeground,RelativeSource={RelativeSource TemplatedParent}}" />
</Trigger>
<Trigger Property="IsMouseOver" Value="True" SourceName="ButtonMax">
<Setter Property="Background" TargetName="ButtonMax" Value="{Binding OtherButtonHoverBackground,RelativeSource={RelativeSource TemplatedParent}}" />
<Setter Property="Foreground" TargetName="ButtonMax" Value="{Binding OtherButtonHoverForeground,RelativeSource={RelativeSource TemplatedParent}}" />
</Trigger>
<Trigger Property="IsMouseOver" Value="True" SourceName="ButtonRestore">
<Setter Property="Background" TargetName="ButtonRestore" Value="{Binding OtherButtonHoverBackground,RelativeSource={RelativeSource TemplatedParent}}" />
<Setter Property="Foreground" TargetName="ButtonRestore" Value="{Binding OtherButtonHoverForeground,RelativeSource={RelativeSource TemplatedParent}}" />
</Trigger>
<Trigger Property="IsMouseOver" Value="True" SourceName="ButtonMin">
<Setter Property="Background" TargetName="ButtonMin" Value="{Binding OtherButtonHoverBackground,RelativeSource={RelativeSource TemplatedParent}}" />
<Setter Property="Foreground" TargetName="ButtonMin" Value="{Binding OtherButtonHoverForeground,RelativeSource={RelativeSource TemplatedParent}}" />
</Trigger>
<Trigger Property="WindowStyle" Value="None">
<Setter Property="ShowNonClientArea" Value="False" />
</Trigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="ResizeMode" Value="CanResizeWithGrip" />
<Condition Property="WindowState" Value="Normal" />
</MultiTrigger.Conditions>
<Setter TargetName="ResizeGrip" Property="Visibility" Value="Visible" />
</MultiTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
<Style x:Key="WindowWin10" TargetType="hc:Window">
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="BorderBrush" Value="#262e2f"/>
<Setter Property="Background" Value="{DynamicResource SecondaryRegionBrush}"/>
@@ -71,108 +263,12 @@
<Setter Property="OtherButtonForeground" Value="{DynamicResource PrimaryTextBrush}"/>
<Setter Property="OtherButtonHoverBackground" Value="{DynamicResource DarkMaskBrush}"/>
<Setter Property="OtherButtonHoverForeground" Value="{DynamicResource PrimaryTextBrush}"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="hc:Window">
<Border SnapsToDevicePixels="True" BorderThickness="{TemplateBinding BorderThickness}" BorderBrush="{TemplateBinding BorderBrush}" Background="{TemplateBinding Background}">
<Grid Margin="{TemplateBinding Padding}">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid Background="{TemplateBinding NonClientAreaBackground}" Name="PART_NonClientArea" TextElement.Foreground="{TemplateBinding NonClientAreaForeground}">
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<StackPanel Name="ButtonPanel" shell:WindowChrome.IsHitTestVisibleInChrome="True" UseLayoutRounding="True" VerticalAlignment="Top" Grid.Column="1" HorizontalAlignment="Right" Orientation="Horizontal">
<Button Background="{TemplateBinding OtherButtonBackground}" Foreground="{TemplateBinding OtherButtonForeground}" Command="shell:SystemCommands.MinimizeWindowCommand" IsTabStop="False" Name="ButtonMin" Height="29" Style="{StaticResource ButtonIcon}" Width="45" hc:IconElement.Geometry="{StaticResource WindowMinGeometry}" BorderThickness="1,0,1,0" hc:IconElement.Width="10" hc:IconElement.Height="10"/>
<Button Background="{TemplateBinding OtherButtonBackground}" Foreground="{TemplateBinding OtherButtonForeground}" Command="shell:SystemCommands.MaximizeWindowCommand" IsTabStop="False" Name="ButtonMax" Height="29" Style="{StaticResource ButtonIcon}" Width="46" hc:IconElement.Geometry="{StaticResource WindowMaxGeometry}" BorderThickness="1,0,1,0" hc:IconElement.Width="10" hc:IconElement.Height="10"/>
<Button Background="{TemplateBinding OtherButtonBackground}" Foreground="{TemplateBinding OtherButtonForeground}" Command="shell:SystemCommands.RestoreWindowCommand" IsTabStop="False" Name="ButtonRestore" Height="29" Style="{StaticResource ButtonIcon}" Width="46" hc:IconElement.Geometry="{StaticResource WindowRestoreGeometry}" BorderThickness="1,0,1,0" hc:IconElement.Width="10" hc:IconElement.Height="10"/>
<Button Background="{TemplateBinding CloseButtonBackground}" Foreground="{TemplateBinding CloseButtonForeground}" Command="shell:SystemCommands.CloseWindowCommand" IsTabStop="False" Name="ButtonClose" Height="29" Style="{StaticResource ButtonIcon}" Width="46" hc:IconElement.Geometry="{StaticResource CloseGeometry}" BorderThickness="1,0,0,0" hc:IconElement.Width="10" hc:IconElement.Height="10"/>
</StackPanel>
<Grid Grid.Column="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Button Name="ButtonIcon" Visibility="{TemplateBinding Icon,Converter={StaticResource Object2VisibilityConverter}}" Command="{x:Static shell:SystemCommands.ShowSystemMenuCommand}" Background="Transparent" Margin="10,0,0,0" shell:WindowChrome.IsHitTestVisibleInChrome="True" Style="{StaticResource ButtonCustom}" VerticalAlignment="Center">
<interactivity:Interaction.Triggers>
<interactivity:EventTrigger EventName="MouseDoubleClick">
<interactivity:InvokeCommandAction Command="{x:Static shell:SystemCommands.CloseWindowCommand}" />
</interactivity:EventTrigger>
</interactivity:Interaction.Triggers>
<Image IsHitTestVisible="False" Name="Icon" Source="{TemplateBinding Icon}" VerticalAlignment="Center" Width="16" Height="16"/>
</Button>
<TextBlock Grid.Column="1" Text="{TemplateBinding Title}" Padding="10,0,0,0" VerticalAlignment="Center">
<TextBlock.Visibility>
<MultiBinding Converter="{StaticResource BooleanArr2VisibilityConverter}">
<MultiBinding.Bindings>
<Binding Path="ShowTitle" RelativeSource="{RelativeSource TemplatedParent}"/>
<Binding Path="Title" RelativeSource="{RelativeSource TemplatedParent}" Converter="{StaticResource Object2BooleanConverter}"/>
</MultiBinding.Bindings>
</MultiBinding>
</TextBlock.Visibility>
</TextBlock>
<ContentPresenter shell:WindowChrome.IsHitTestVisibleInChrome="True" Grid.Column="2" x:Name="ContentPresenterMain" Content="{TemplateBinding NonClientAreaContent}"/>
</Grid>
</Grid>
<AdornerDecorator Grid.Row="1">
<ContentPresenter ClipToBounds="True"/>
</AdornerDecorator>
<ResizeGrip Width="10" Height="10" x:Name="ResizeGrip" HorizontalAlignment="Right" VerticalAlignment="Bottom" Grid.Row="1" IsTabStop="False" Visibility="Collapsed"/>
</Grid>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsActive" Value="False">
<Setter Property="Opacity" Value=".8" TargetName="ContentPresenterMain"/>
<Setter Property="Opacity" Value=".8" TargetName="ButtonPanel"/>
</Trigger>
<Trigger Property="WindowState" Value="Maximized">
<Setter Property="Visibility" Value="Collapsed" TargetName="ButtonMax"/>
<Setter Property="Visibility" Value="Visible" TargetName="ButtonRestore"/>
</Trigger>
<Trigger Property="WindowState" Value="Normal">
<Setter Property="Visibility" Value="Visible" TargetName="ButtonMax"/>
<Setter Property="Visibility" Value="Collapsed" TargetName="ButtonRestore"/>
</Trigger>
<Trigger Property="ResizeMode" Value="NoResize">
<Setter Property="Visibility" Value="Collapsed" TargetName="ButtonMin"/>
<Setter Property="Visibility" Value="Collapsed" TargetName="ButtonMax"/>
<Setter Property="Visibility" Value="Collapsed" TargetName="ButtonRestore"/>
</Trigger>
<Trigger Property="ResizeMode" Value="CanMinimize">
<Setter Property="Visibility" Value="Collapsed" TargetName="ButtonMax"/>
<Setter Property="Visibility" Value="Collapsed" TargetName="ButtonRestore"/>
</Trigger>
<Trigger Property="IsMouseOver" Value="True" SourceName="ButtonClose">
<Setter Property="Background" TargetName="ButtonClose" Value="{Binding CloseButtonHoverBackground,RelativeSource={RelativeSource TemplatedParent}}"/>
<Setter Property="Foreground" TargetName="ButtonClose" Value="{Binding CloseButtonHoverForeground,RelativeSource={RelativeSource TemplatedParent}}"/>
</Trigger>
<Trigger Property="IsMouseOver" Value="True" SourceName="ButtonMax">
<Setter Property="Background" TargetName="ButtonMax" Value="{Binding OtherButtonHoverBackground,RelativeSource={RelativeSource TemplatedParent}}"/>
<Setter Property="Foreground" TargetName="ButtonMax" Value="{Binding OtherButtonHoverForeground,RelativeSource={RelativeSource TemplatedParent}}"/>
</Trigger>
<Trigger Property="IsMouseOver" Value="True" SourceName="ButtonRestore">
<Setter Property="Background" TargetName="ButtonRestore" Value="{Binding OtherButtonHoverBackground,RelativeSource={RelativeSource TemplatedParent}}"/>
<Setter Property="Foreground" TargetName="ButtonRestore" Value="{Binding OtherButtonHoverForeground,RelativeSource={RelativeSource TemplatedParent}}"/>
</Trigger>
<Trigger Property="IsMouseOver" Value="True" SourceName="ButtonMin">
<Setter Property="Background" TargetName="ButtonMin" Value="{Binding OtherButtonHoverBackground,RelativeSource={RelativeSource TemplatedParent}}"/>
<Setter Property="Foreground" TargetName="ButtonMin" Value="{Binding OtherButtonHoverForeground,RelativeSource={RelativeSource TemplatedParent}}"/>
</Trigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="ResizeMode" Value="CanResizeWithGrip"/>
<Condition Property="WindowState" Value="Normal" />
</MultiTrigger.Conditions>
<Setter TargetName="ResizeGrip" Property="Visibility" Value="Visible" />
</MultiTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="Template" Value="{StaticResource WindowWin10Template}" />
<Style.Triggers>
<Trigger Property="hc:WindowAttach.ExtendContentToNonClientArea" Value="true">
<Setter Property="Template" Value="{StaticResource WindowWin10ExtendContentToNonClientTemplate}" />
</Trigger>
</Style.Triggers>
</Style>
<Style x:Key="WindowBlur" BasedOn="{StaticResource WindowWin10}" TargetType="hc:BlurWindow">
@@ -197,12 +293,12 @@
<ControlTemplate TargetType="hc:ImageBrowser">
<ControlTemplate.Resources>
<Storyboard x:Key="Storyboard1">
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="Opacity" Storyboard.TargetName="PART_GridTop">
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="Opacity" Storyboard.TargetName="PART_PanelTop">
<EasingDoubleKeyFrame KeyTime="0:0:.1" Value="1"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
<Storyboard x:Key="Storyboard2">
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="Opacity" Storyboard.TargetName="PART_GridTop">
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="Opacity" Storyboard.TargetName="PART_PanelTop">
<EasingDoubleKeyFrame KeyTime="0:0:.4" Value="0"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
@@ -213,13 +309,13 @@
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<hc:ImageViewer x:Name="PART_ImageViewer" ShowImgMap="True" BorderThickness="0" Background="#dd000000"/>
<Grid Name="PART_GridTop" Opacity="0" Background="{DynamicResource DarkOpacityBrush}" VerticalAlignment="Top" Grid.Row="0">
<hc:SimplePanel x:Name="PART_PanelTop" Opacity="0" Background="{DynamicResource DarkOpacityBrush}" VerticalAlignment="Top" Grid.Row="0">
<StackPanel HorizontalAlignment="Left" VerticalAlignment="Center" Orientation="Horizontal">
<TextBlock Text="{Binding ImgPath,ElementName=PART_ImageViewer}" Foreground="White" Margin="10,0,0,0"/>
<TextBlock Text="{Binding ImgSize,ElementName=PART_ImageViewer,Converter={StaticResource Long2FileSizeConverter}}" Foreground="White" Margin="30,0,0,0"/>
</StackPanel>
<Button Command="interactivity:ControlCommands.Close" shell:WindowChrome.IsHitTestVisibleInChrome="True" Background="Red" Grid.Row="0" Padding="14" hc:IconElement.Geometry="{StaticResource DeleteGeometry}" Style="{StaticResource ButtonIcon}" HorizontalAlignment="Right" VerticalAlignment="Top" Width="40" Height="40"/>
</Grid>
<Button Command="interactivity:ControlCommands.Close" Foreground="{DynamicResource TextIconBrush}" shell:WindowChrome.IsHitTestVisibleInChrome="True" Background="Red" Grid.Row="0" Padding="14" hc:IconElement.Geometry="{StaticResource DeleteGeometry}" Style="{StaticResource ButtonIcon}" HorizontalAlignment="Right" VerticalAlignment="Top" Width="40" Height="40"/>
</hc:SimplePanel>
</Grid>
<ControlTemplate.Triggers>
<Trigger SourceName="PART_ImageViewer" Property="ShowCloseButton" Value="True">
File diff suppressed because it is too large. Load diff
@@ -3,22 +3,21 @@
<OutputType>WinExe</OutputType>
<AssemblyName>HandyControlDemo</AssemblyName>
<RootNamespace>HandyControlDemo</RootNamespace>
<TargetFrameworks>netcoreapp3.0;netcoreapp3.1;net45;net462;net47;net48;net5.0-windows</TargetFrameworks>
<TargetFrameworks>netcoreapp3.0;netcoreapp3.1;net45;net451;net452;net46;net461;net462;net47;net471;net472;net48;net481;net5.0-windows;net6.0-windows;net7.0-windows</TargetFrameworks>
<ApplicationIcon>..\..\Shared\HandyControlDemo_Shared\Resources\Img\icon.ico</ApplicationIcon>
<NoWarn>0108;MSB3026;MSB3061</NoWarn>
<NoWarn>0108;MSB3026;MSB3061;SYSLIB0014</NoWarn>
<MSBuildWarningsAsMessages>NETSDK1138</MSBuildWarningsAsMessages>
<UseWPF>true</UseWPF>
<Copyright>Copyright © HandyOrg 2018-2021</Copyright>
<AssemblyVersion>3.1.0.0</AssemblyVersion>
<FileVersion>3.1.0.0</FileVersion>
<Version>3.1.0.0</Version>
<RepositoryUrl>https://github.com/HandyOrg/HandyControl</RepositoryUrl>
<ApplicationManifest>..\..\Shared\HandyControlDemo_Shared\app.manifest</ApplicationManifest>
</PropertyGroup>
<ItemGroup Condition="$(TargetFramework.StartsWith('net4'))">
<Reference Include="Microsoft.CSharp" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="AvalonEdit" Version="6.0.1" />
<PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies" Version="1.0.3">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="MvvmLightLibsStd10" Version="5.4.1.1" />
<PackageReference Include="Newtonsoft.Json" Version="11.0.2" />
</ItemGroup>
@@ -175,15 +174,24 @@
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\Flag\ca-Es.png">
<Link>Resources\Img\Flag\ca-Es.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\Flag\cs.png">
<Link>Resources\Img\Flag\cs.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\Flag\en.png">
<Link>Resources\Img\Flag\en.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\Flag\es.png">
<Link>Resources\Img\Flag\es.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\Flag\fa.png">
<Link>Resources\Img\Flag\fa.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\Flag\fr.png">
<Link>Resources\Img\Flag\fr.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\Flag\ja.png">
<Link>Resources\Img\Flag\ja.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\Flag\ko-KR.png">
<Link>Resources\Img\Flag\ko-KR.png</Link>
</Resource>
@@ -199,216 +207,15 @@
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\Flag\tr.png">
<Link>Resources\Img\Flag\tr.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\Slack.png">
<Link>Resources\Img\Slack.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\icon-white.ico">
<Link>Resources\Img\icon-white.ico</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\icon.ico">
<Link>Resources\Img\icon.ico</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\qq_group_1.jpg">
<Link>Resources\Img\qq_group_1.jpg</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\qq_group_2.jpg">
<Link>Resources\Img\qq_group_2.jpg</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\Animation_16x.png">
<Link>Resources\Img\LeftMainContent\Animation_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\BorderElement_16x.png">
<Link>Resources\Img\LeftMainContent\BorderElement_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\Brush_16x.png">
<Link>Resources\Img\LeftMainContent\Brush_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\Bubble_16xLG.png">
<Link>Resources\Img\LeftMainContent\Bubble_16xLG.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\ButtonClick_16x.png">
<Link>Resources\Img\LeftMainContent\ButtonClick_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\Calendar_16x.png">
<Link>Resources\Img\LeftMainContent\Calendar_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\Carousel_16x.png">
<Link>Resources\Img\LeftMainContent\Carousel_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\CheckBox_16x.png">
<Link>Resources\Img\LeftMainContent\CheckBox_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\CheckBoxList_16x.png">
<Link>Resources\Img\LeftMainContent\CheckBoxList_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\ColorPalette_16x.png">
<Link>Resources\Img\LeftMainContent\ColorPalette_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\ColorWheel_16x.png">
<Link>Resources\Img\LeftMainContent\ColorWheel_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\ComboBox_16x.png">
<Link>Resources\Img\LeftMainContent\ComboBox_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\ContextMenu_16x.png">
<Link>Resources\Img\LeftMainContent\ContextMenu_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\DataGrid_16x.png">
<Link>Resources\Img\LeftMainContent\DataGrid_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\DatePicker_16x.png">
<Link>Resources\Img\LeftMainContent\DatePicker_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\DetailDataView_16x.png">
<Link>Resources\Img\LeftMainContent\DetailDataView_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\Dialog_16x.png">
<Link>Resources\Img\LeftMainContent\Dialog_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\DotLarge_16x.png">
<Link>Resources\Img\LeftMainContent\DotLarge_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\Expander_16x.png">
<Link>Resources\Img\LeftMainContent\Expander_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\FlipVertical_16x.png">
<Link>Resources\Img\LeftMainContent\FlipVertical_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\Flow_16x.png">
<Link>Resources\Img\LeftMainContent\Flow_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\GoToTop_16x.png">
<Link>Resources\Img\LeftMainContent\GoToTop_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\GroupBox_16x.png">
<Link>Resources\Img\LeftMainContent\GroupBox_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\HoverMenu_16x.png">
<Link>Resources\Img\LeftMainContent\HoverMenu_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\Image_16x.png">
<Link>Resources\Img\LeftMainContent\Image_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\ImageBrowser_16x.png">
<Link>Resources\Img\LeftMainContent\ImageBrowser_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\Label_16x.png">
<Link>Resources\Img\LeftMainContent\Label_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\layout-FlexLayout-16.png">
<Link>Resources\Img\LeftMainContent\layout-FlexLayout-16.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\LinearCarousel_16x.png">
<Link>Resources\Img\LeftMainContent\LinearCarousel_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\ListBox_16x.png">
<Link>Resources\Img\LeftMainContent\ListBox_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\ListView_16x.png">
<Link>Resources\Img\LeftMainContent\ListView_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\Loading_Blue_16x.png">
<Link>Resources\Img\LeftMainContent\Loading_Blue_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\Message_16x.png">
<Link>Resources\Img\LeftMainContent\Message_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\NotificationHub_16x.png">
<Link>Resources\Img\LeftMainContent\NotificationHub_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\NumericListBox_16x.png">
<Link>Resources\Img\LeftMainContent\NumericListBox_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\Paginator_16x.png">
<Link>Resources\Img\LeftMainContent\Paginator_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\Panel_16x.png">
<Link>Resources\Img\LeftMainContent\Panel_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\PasswordBox_16x.png">
<Link>Resources\Img\LeftMainContent\PasswordBox_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\Path_16x.png">
<Link>Resources\Img\LeftMainContent\Path_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\ProgressBar_16x.png">
<Link>Resources\Img\LeftMainContent\ProgressBar_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\ProgressButton_16x.png">
<Link>Resources\Img\LeftMainContent\ProgressButton_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\RadioButton_16x.png">
<Link>Resources\Img\LeftMainContent\RadioButton_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\PropertyGridEditorPart_16x.png">
<Link>Resources\Img\LeftMainContent\PropertyGridEditorPart_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\RepeatButton_16x.png">
<Link>Resources\Img\LeftMainContent\RepeatButton_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\RichTextBox_16x.png">
<Link>Resources\Img\LeftMainContent\RichTextBox_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\ScrollBox_16x.png">
<Link>Resources\Img\LeftMainContent\ScrollBox_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\Search_16x.png">
<Link>Resources\Img\LeftMainContent\Search_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\Shield_16x.png">
<Link>Resources\Img\LeftMainContent\Shield_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\Slider_16x.png">
<Link>Resources\Img\LeftMainContent\Slider_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\SortAscending_grey_16x.png">
<Link>Resources\Img\LeftMainContent\SortAscending_grey_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\SplitterControl_16x.png">
<Link>Resources\Img\LeftMainContent\SplitterControl_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\Star.png">
<Link>Resources\Img\LeftMainContent\Star.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\TabPage_16x.png">
<Link>Resources\Img\LeftMainContent\TabPage_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\Tag_16x.png">
<Link>Resources\Img\LeftMainContent\Tag_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\TextBlock_16x.png">
<Link>Resources\Img\LeftMainContent\TextBlock_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\TextBox_16x.png">
<Link>Resources\Img\LeftMainContent\TextBox_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\Timeline_16x.png">
<Link>Resources\Img\LeftMainContent\Timeline_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\TimePicker_16x.png">
<Link>Resources\Img\LeftMainContent\TimePicker_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\Time_color_16x.png">
<Link>Resources\Img\LeftMainContent\Time_color_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\Toggle_16x.png">
<Link>Resources\Img\LeftMainContent\Toggle_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\ToolBar_16x.png">
<Link>Resources\Img\LeftMainContent\ToolBar_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\Transfer_16x.png">
<Link>Resources\Img\LeftMainContent\Transfer_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\TreeView_16x.png">
<Link>Resources\Img\LeftMainContent\TreeView_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\User_16x.png">
<Link>Resources\Img\LeftMainContent\User_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\WindowsForm_16x.png">
<Link>Resources\Img\LeftMainContent\WindowsForm_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\GridPane_16x.png">
<Link>Resources\Img\LeftMainContent\GridPane_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\under_construction.gif">
<Link>Resources\Img\under_construction.gif</Link>
</Resource>
@@ -427,90 +234,24 @@
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\DevOps\DevOps-TestPlans.png">
<Link>Resources\Img\DevOps\DevOps-TestPlans.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\MainMenuControl_16x.png">
<Link>Resources\Img\LeftMainContent\MainMenuControl_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\fabric-icons.ttf">
<Link>Resources\fabric-icons.ttf</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\xshd\CSharp-Dark.xshd">
<Link>Resources\xshd\CSharp-Dark.xshd</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\xshd\XML-Dark.xshd">
<Link>Resources\xshd\XML-Dark.xshd</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Registry.txt">
<Link>Resources\Registry.txt</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\brackets_Square_16xLG.png">
<Link>Resources\Img\LeftMainContent\brackets_Square_16xLG.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\ButtonGroup_16x.png">
<Link>Resources\Img\LeftMainContent\ButtonGroup_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\VSO_Card_16x.png">
<Link>Resources\Img\LeftMainContent\VSO_Card_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\ImageStack_16x.png">
<Link>Resources\Img\LeftMainContent\ImageStack_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\IncreaseHorizontalSpacing_16x.png">
<Link>Resources\Img\LeftMainContent\IncreaseHorizontalSpacing_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\Dynamic_16x.png">
<Link>Resources\Img\LeftMainContent\Dynamic_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\PolygonHexagon_16x.png">
<Link>Resources\Img\LeftMainContent\PolygonHexagon_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\HandyControl.png">
<Link>Resources\Img\LeftMainContent\HandyControl.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\Procedure_16x.png">
<Link>Resources\Img\LeftMainContent\Procedure_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\Dance.png">
<Link>Resources\Img\Dance.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\thumbs_up.png">
<Link>Resources\Img\LeftMainContent\thumbs_up.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\SplitButton_16x.png">
<Link>Resources\Img\LeftMainContent\SplitButton_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\DataGenerator_16x.png">
<Link>Resources\Img\LeftMainContent\DataGenerator_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\DottedSplitter_16x.png">
<Link>Resources\Img\LeftMainContent\DottedSplitter_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\PopupCursor_16x.png">
<Link>Resources\Img\LeftMainContent\PopupCursor_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\TransitioningContentControl_16x.png">
<Link>Resources\Img\LeftMainContent\TransitioningContentControl_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\View_Portrait_16x.png">
<Link>Resources\Img\LeftMainContent\View_Portrait_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\TransformRelative_16x.png">
<Link>Resources\Img\LeftMainContent\TransformRelative_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\Effects_16x.png">
<Link>Resources\Img\LeftMainContent\Effects_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\Ellipsis_16x.png">
<Link>Resources\Img\LeftMainContent\Ellipsis_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\WPFFlowDocument_16x.png">
<Link>Resources\Img\LeftMainContent\WPFFlowDocument_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\OutlinedRectangleTool_16x.png">
<Link>Resources\Img\LeftMainContent\OutlinedRectangleTool_16x.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\frame_16xLG.png">
<Link>Resources\Img\LeftMainContent\frame_16xLG.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\cloud.png">
<Link>Resources\Img\cloud.png</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Resources\Img\LeftMainContent\WindowScreenshot_16x.png">
<Link>Resources\Img\LeftMainContent\WindowScreenshot_16x.png</Link>
</Resource>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="..\..\Shared\HandyControlDemo_Shared\Properties\Langs\Lang.tr.resx">
@@ -519,15 +260,24 @@
<EmbeddedResource Include="..\..\Shared\HandyControlDemo_Shared\Properties\Langs\Lang.ca-ES.resx">
<Link>Properties\Langs\Lang.ca-ES.resx</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\Shared\HandyControlDemo_Shared\Properties\Langs\Lang.cs.resx">
<Link>Properties\Langs\Lang.cs.resx</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\Shared\HandyControlDemo_Shared\Properties\Langs\Lang.en.resx">
<Link>Properties\Langs\Lang.en.resx</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\Shared\HandyControlDemo_Shared\Properties\Langs\Lang.es.resx">
<Link>Properties\Langs\Lang.es.resx</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\Shared\HandyControlDemo_Shared\Properties\Langs\Lang.fa.resx">
<Link>Properties\Langs\Lang.fa.resx</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\Shared\HandyControlDemo_Shared\Properties\Langs\Lang.fr.resx">
<Link>Properties\Langs\Lang.fr.resx</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\Shared\HandyControlDemo_Shared\Properties\Langs\Lang.ja.resx">
<Link>Properties\Langs\Lang.ja.resx</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\Shared\HandyControlDemo_Shared\Properties\Langs\Lang.ko-KR.resx">
<Link>Properties\Langs\Lang.ko-KR.resx</Link>
</EmbeddedResource>
@@ -573,8 +323,10 @@
<PostBuildEvent>
if not exist Langs md Langs
rd /s /q Langs\en
rd /s /q Langs\es
rd /s /q Langs\fa
rd /s /q Langs\fr
rd /s /q Langs\ja
rd /s /q Langs\ko-KR
rd /s /q Langs\pt-BR
rd /s /q Langs\pl
@@ -582,8 +334,10 @@
rd /s /q Langs\tr
rd /s /q Langs\ca-Es
move en Langs
move es Langs
move fa Langs
move fr Langs
move ja Langs
move ko-KR Langs
move pt-BR Langs
move pl Langs
@@ -2,20 +2,17 @@
<PropertyGroup>
<AssemblyName>HandyControl</AssemblyName>
<RootNamespace>HandyControl</RootNamespace>
<TargetFrameworks>netcoreapp3.0;netcoreapp3.1;net45;net462;net47;net48;net5.0-windows</TargetFrameworks>
<Description>Contains some commonly used simple WPF controls</Description>
<TargetFrameworks>netcoreapp3.0;netcoreapp3.1;net45;net451;net452;net46;net461;net462;net47;net471;net472;net48;net481;net5.0-windows;net6.0-windows;net7.0-windows</TargetFrameworks>
<Description>Contains some simple and commonly used WPF controls</Description>
<PackageId>HandyControl</PackageId>
<IncludeSymbols>true</IncludeSymbols>
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
<NoWarn>0067;0649;1591;MSB3061;SYSLIB0003;SYSLIB0004</NoWarn>
<NoWarn>0067;0649;1591;MSB3061;SYSLIB0003;SYSLIB0004;SYSLIB0032</NoWarn>
<MSBuildWarningsAsMessages>NETSDK1138</MSBuildWarningsAsMessages>
<UseWPF>true</UseWPF>
<AssemblyOriginatorKeyFile>..\..\Shared\HandyControl_Shared\key.snk</AssemblyOriginatorKeyFile>
<Copyright>Copyright © HandyOrg 2018-2021</Copyright>
<AssemblyVersion>3.1.0.0</AssemblyVersion>
<FileVersion>3.1.0.0</FileVersion>
<Version>3.1.0.0</Version>
<RepositoryUrl>https://github.com/HandyOrg/HandyControl</RepositoryUrl>
<PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance>
<PackageTags>WPF C# Control</PackageTags>
<PackageReleaseNotes>Changes are detailed at https://github.com/HandyOrg/HandyControl/releases</PackageReleaseNotes>
<RepositoryType>git</RepositoryType>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<SignAssembly>true</SignAssembly>
@@ -42,8 +39,14 @@
<EmbeddedResource Include="..\..\Shared\HandyControl_Shared\Properties\Langs\Lang.ca-ES.resx">
<Link>Properties\Langs\Lang.ca-ES.resx</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\Shared\HandyControl_Shared\Properties\Langs\Lang.cs.resx">
<Link>Properties\Langs\Lang.cs.resx</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\Shared\HandyControl_Shared\Properties\Langs\Lang.en.resx">
<Link>Properties\Langs\Lang.en.resx</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\Shared\HandyControl_Shared\Properties\Langs\Lang.es.resx">
<Link>Properties\Langs\Lang.es.resx</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\Shared\HandyControl_Shared\Properties\Langs\Lang.fa.resx">
<Link>Properties\Langs\Lang.fa.resx</Link>
@@ -51,6 +54,9 @@
<EmbeddedResource Include="..\..\Shared\HandyControl_Shared\Properties\Langs\Lang.fr.resx">
<Link>Properties\Langs\Lang.fr.resx</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\Shared\HandyControl_Shared\Properties\Langs\Lang.ja.resx">
<Link>Properties\Langs\Lang.ja.resx</Link>
</EmbeddedResource>
<EmbeddedResource Include="..\..\Shared\HandyControl_Shared\Properties\Langs\Lang.ko-KR.resx">
<Link>Properties\Langs\Lang.ko-KR.resx</Link>
</EmbeddedResource>
@@ -80,6 +86,15 @@
</Content>
</ItemGroup>
<Import Project="..\..\Shared\HandyControl_Shared\HandyControl_Shared.projitems" Label="Shared" />
<Import Project="..\..\Shared\Microsoft.Expression.Drawing\Microsoft.Expression.Drawing.projitems" Label="Shared" />
<Import Project="..\..\Shared\System.Windows.Interactivity\System.Windows.Interactivity.projitems" Label="Shared" />
<Import Project="..\..\Shared\Microsoft.Expression.Interactions\Microsoft.Expression.Interactions.projitems" Label="Shared" />
<ItemGroup>
<PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies" Version="1.0.3">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
</ItemGroup>
<ItemGroup>
<Resource Include="..\..\Shared\HandyControl_Shared\Resources\dropper.cur">
<Link>Resources\dropper.cur</Link>
@@ -3,15 +3,16 @@
<UseWPF>true</UseWPF>
<AssemblyName>HandyControlDemoCode</AssemblyName>
<RootNamespace>HandyControlDemoCode</RootNamespace>
<TargetFrameworks>netcoreapp3.0;netcoreapp3.1;net40;net45;net462;net47;net48;net5.0-windows</TargetFrameworks>
<TargetFrameworks>netcoreapp3.0;netcoreapp3.1;net40;net45;net451;net452;net46;net461;net462;net47;net471;net472;net48;net481;net5.0-windows;net6.0-windows;net7.0-windows</TargetFrameworks>
<NoWarn>MSB3026;MSB3061</NoWarn>
<MSBuildWarningsAsMessages>NETSDK1138</MSBuildWarningsAsMessages>
<Version>3.1.0.0</Version>
<Copyright>Copyright © HandyOrg 2018-2021</Copyright>
<RepositoryUrl>https://github.com/HandyOrg/HandyControl</RepositoryUrl>
<AssemblyVersion>3.1.0.0</AssemblyVersion>
<FileVersion>3.1.0.0</FileVersion>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies" Version="1.0.3">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
</ItemGroup>
<ItemGroup>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\Window\AboutWindow.xaml">
<Link>Window\AboutWindow.xaml</Link>
@@ -61,6 +62,9 @@
<Resource Include="..\..\Shared\HandyControlDemo_Shared\UserControl\Controls\AnimationPathDemoCtl.xaml">
<Link>UserControl\Controls\AnimationPathDemoCtl.xaml</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\UserControl\Controls\AutoCompleteTextBoxDemoCtl.xaml">
<Link>UserControl\Controls\AutoCompleteTextBoxDemoCtl.xaml</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\UserControl\Controls\BadgeDemoCtl.xaml">
<Link>UserControl\Controls\BadgeDemoCtl.xaml</Link>
</Resource>
@@ -118,6 +122,9 @@
<Resource Include="..\..\Shared\HandyControlDemo_Shared\UserControl\Controls\DrawerDemoCtl.xaml">
<Link>UserControl\Controls\DrawerDemoCtl.xaml</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\UserControl\Controls\ElementGroupDemoCtl.xaml">
<Link>UserControl\Controls\ElementGroupDemoCtl.xaml</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\UserControl\Controls\FlexPanelDemoCtl.xaml">
<Link>UserControl\Controls\FlexPanelDemoCtl.xaml</Link>
</Resource>
@@ -259,6 +266,9 @@
<Resource Include="..\..\Shared\HandyControlDemo_Shared\UserControl\Controls\WaterfallPanelDemoCtl.xaml">
<Link>UserControl\Controls\WaterfallPanelDemoCtl.xaml</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\UserControl\Controls\WatermarkDemoCtl.xaml">
<Link>UserControl\Controls\WatermarkDemoCtl.xaml</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\UserControl\Controls\WindowDemoCtl.xaml">
<Link>UserControl\Controls\WindowDemoCtl.xaml</Link>
</Resource>
@@ -433,6 +443,10 @@
<Link>UserControl\Controls\AnimationPathDemoCtl.xaml.cs</Link>
<DependentUpon>AnimationPathDemoCtl.xaml</DependentUpon>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\UserControl\Controls\AutoCompleteTextBoxDemoCtl.xaml.cs">
<Link>UserControl\Controls\AutoCompleteTextBoxDemoCtl.xaml.cs</Link>
<DependentUpon>AutoCompleteTextBoxDemoCtl.xaml</DependentUpon>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\UserControl\Controls\BadgeDemoCtl.xaml.cs">
<Link>UserControl\Controls\BadgeDemoCtl.xaml.cs</Link>
<DependentUpon>BadgeDemoCtl.xaml</DependentUpon>
@@ -509,6 +523,10 @@
<Link>UserControl\Controls\DrawerDemoCtl.xaml.cs</Link>
<DependentUpon>DrawerDemoCtl.xaml</DependentUpon>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\UserControl\Controls\ElementGroupDemoCtl.xaml.cs">
<Link>UserControl\Controls\ElementGroupDemoCtl.xaml.cs</Link>
<DependentUpon>ElementGroupDemoCtl.xaml</DependentUpon>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\UserControl\Controls\FlexPanelDemoCtl.xaml.cs">
<Link>UserControl\Controls\FlexPanelDemoCtl.xaml.cs</Link>
<DependentUpon>FlexPanelDemoCtl.xaml</DependentUpon>
@@ -693,6 +711,10 @@
<Link>UserControl\Controls\UniformSpacingPanelDemoCtl.xaml.cs</Link>
<DependentUpon>UniformSpacingPanelDemoCtl.xaml</DependentUpon>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\UserControl\Controls\WatermarkDemoCtl.xaml.cs">
<Link>UserControl\Controls\WatermarkDemoCtl.xaml.cs</Link>
<DependentUpon>WatermarkDemoCtl.xaml</DependentUpon>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\UserControl\Controls\WaterfallPanelDemoCtl.xaml.cs">
<Link>UserControl\Controls\WaterfallPanelDemoCtl.xaml.cs</Link>
<DependentUpon>WaterfallPanelDemoCtl.xaml</DependentUpon>
@@ -845,8 +867,11 @@
<Resource Include="..\..\Shared\HandyControlDemo_Shared\ViewModel\Basic\InteractiveDialogViewModel.cs">
<Link>ViewModel\InteractiveDialogViewModel.cs</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\ViewModel\Common\ComboBoxDemoViewModel.cs">
<Link>ViewModel\ComboBoxDemoViewModel.cs</Link>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\ViewModel\Common\InputElementDemoViewModel.cs">
<Link>ViewModel\InputElementDemoViewModel.cs</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\ViewModel\Controls\AutoCompleteTextBoxDemoViewModel.cs">
<Link>ViewModel\AutoCompleteTextBoxDemoViewModel.cs</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\ViewModel\Controls\BadgeDemoViewModel.cs">
<Link>ViewModel\BadgeDemoViewModel.cs</Link>
@@ -875,9 +900,6 @@
<Resource Include="..\..\Shared\HandyControlDemo_Shared\ViewModel\Controls\PaginationDemoViewModel.cs">
<Link>ViewModel\PaginationDemoViewModel.cs</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\ViewModel\Controls\SearchBarDemoViewModel.cs">
<Link>ViewModel\SearchBarDemoViewModel.cs</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\ViewModel\Controls\SideMenuDemoViewModel.cs">
<Link>ViewModel\SideMenuDemoViewModel.cs</Link>
</Resource>
@@ -899,8 +921,8 @@
<Resource Include="..\..\Shared\HandyControlDemo_Shared\ViewModel\Controls\WindowDemoViewModel.cs">
<Link>ViewModel\WindowDemoViewModel.cs</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\ViewModel\DemoViewModelBase!1.cs">
<Link>ViewModel\DemoViewModelBase!1.cs</Link>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\ViewModel\DemoViewModelBase`1.cs">
<Link>ViewModel\DemoViewModelBase`1.cs</Link>
</Resource>
<Resource Include="..\..\Shared\HandyControlDemo_Shared\ViewModel\Main\ItemsDisplayViewModel.cs">
<Link>ViewModel\ItemsDisplayViewModel.cs</Link>
+90 -91
View File
@@ -15,124 +15,123 @@ using HandyControlDemo.Data;
using HandyControlDemo.Properties.Langs;
using HandyControlDemo.Tools;
namespace HandyControlDemo
namespace HandyControlDemo;
public partial class App
{
public partial class App
{
#pragma warning disable IDE0052
[SuppressMessage("ReSharper", "NotAccessedField.Local")]
private static Mutex AppMutex;
[SuppressMessage("ReSharper", "NotAccessedField.Local")]
private static Mutex AppMutex;
#pragma warning restore IDE0052
public App()
{
public App()
{
#if !NET40
var cachePath = $"{AppDomain.CurrentDomain.BaseDirectory}Cache";
if (!Directory.Exists(cachePath))
{
Directory.CreateDirectory(cachePath);
}
ProfileOptimization.SetProfileRoot(cachePath);
ProfileOptimization.StartProfile("Profile");
#endif
}
protected override void OnStartup(StartupEventArgs e)
var cachePath = $"{AppDomain.CurrentDomain.BaseDirectory}Cache";
if (!Directory.Exists(cachePath))
{
AppMutex = new Mutex(true, "HandyControlDemo", out var createdNew);
Directory.CreateDirectory(cachePath);
}
ProfileOptimization.SetProfileRoot(cachePath);
ProfileOptimization.StartProfile("Profile");
#endif
}
if (!createdNew)
protected override void OnStartup(StartupEventArgs e)
{
AppMutex = new Mutex(true, "HandyControlDemo", out var createdNew);
if (!createdNew)
{
var current = Process.GetCurrentProcess();
foreach (var process in Process.GetProcessesByName(current.ProcessName))
{
var current = Process.GetCurrentProcess();
foreach (var process in Process.GetProcessesByName(current.ProcessName))
if (process.Id != current.Id)
{
if (process.Id != current.Id)
{
Win32Helper.SetForegroundWindow(process.MainWindowHandle);
break;
}
Win32Helper.SetForegroundWindow(process.MainWindowHandle);
break;
}
Shutdown();
}
else
Shutdown();
}
else
{
var splashScreen = new SplashScreen("Resources/Img/Cover.png");
splashScreen.Show(true);
base.OnStartup(e);
UpdateRegistry();
ShutdownMode = ShutdownMode.OnMainWindowClose;
GlobalData.Init();
ConfigHelper.Instance.SetLang(GlobalData.Config.Lang);
LangProvider.Culture = new CultureInfo(GlobalData.Config.Lang);
if (GlobalData.Config.Skin != SkinType.Default)
{
var splashScreen = new SplashScreen("Resources/Img/Cover.png");
splashScreen.Show(true);
UpdateSkin(GlobalData.Config.Skin);
}
base.OnStartup(e);
UpdateRegistry();
ShutdownMode = ShutdownMode.OnMainWindowClose;
GlobalData.Init();
ConfigHelper.Instance.SetLang(GlobalData.Config.Lang);
LangProvider.Culture = new CultureInfo(GlobalData.Config.Lang);
if (GlobalData.Config.Skin != SkinType.Default)
{
UpdateSkin(GlobalData.Config.Skin);
}
ConfigHelper.Instance.SetWindowDefaultStyle();
ConfigHelper.Instance.SetNavigationWindowDefaultStyle();
ConfigHelper.Instance.SetWindowDefaultStyle();
ConfigHelper.Instance.SetNavigationWindowDefaultStyle();
#if NET40
ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072;
ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072;
#else
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
#endif
}
}
}
protected override void OnExit(ExitEventArgs e)
protected override void OnExit(ExitEventArgs e)
{
base.OnExit(e);
GlobalData.Save();
}
internal void UpdateSkin(SkinType skin)
{
var skins0 = Resources.MergedDictionaries[0];
skins0.MergedDictionaries.Clear();
skins0.MergedDictionaries.Add(ResourceHelper.GetSkin(skin));
skins0.MergedDictionaries.Add(ResourceHelper.GetSkin(typeof(App).Assembly, "Resources/Themes", skin));
var skins1 = Resources.MergedDictionaries[1];
skins1.MergedDictionaries.Clear();
skins1.MergedDictionaries.Add(new ResourceDictionary
{
base.OnExit(e);
GlobalData.Save();
}
internal void UpdateSkin(SkinType skin)
Source = new Uri("pack://application:,,,/HandyControl;component/Themes/Theme.xaml")
});
skins1.MergedDictionaries.Add(new ResourceDictionary
{
var skins0 = Resources.MergedDictionaries[0];
skins0.MergedDictionaries.Clear();
skins0.MergedDictionaries.Add(ResourceHelper.GetSkin(skin));
skins0.MergedDictionaries.Add(ResourceHelper.GetSkin(typeof(App).Assembly, "Resources/Themes", skin));
Source = new Uri("pack://application:,,,/HandyControlDemo;component/Resources/Themes/Theme.xaml")
});
var skins1 = Resources.MergedDictionaries[1];
skins1.MergedDictionaries.Clear();
skins1.MergedDictionaries.Add(new ResourceDictionary
{
Source = new Uri("pack://application:,,,/HandyControl;component/Themes/Theme.xaml")
});
skins1.MergedDictionaries.Add(new ResourceDictionary
{
Source = new Uri("pack://application:,,,/HandyControlDemo;component/Resources/Themes/Theme.xaml")
});
Current.MainWindow?.OnApplyTemplate();
}
Current.MainWindow?.OnApplyTemplate();
}
private void UpdateRegistry()
private void UpdateRegistry()
{
var processModule = Process.GetCurrentProcess().MainModule;
if (processModule != null)
{
var processModule = Process.GetCurrentProcess().MainModule;
if (processModule != null)
var registryFilePath = $"{Path.GetDirectoryName(processModule.FileName)}\\Registry.reg";
if (!File.Exists(registryFilePath))
{
var registryFilePath = $"{Path.GetDirectoryName(processModule.FileName)}\\Registry.reg";
if (!File.Exists(registryFilePath))
var streamResourceInfo = GetResourceStream(new Uri("pack://application:,,,/Resources/Registry.txt"));
if (streamResourceInfo != null)
{
var streamResourceInfo = GetResourceStream(new Uri("pack://application:,,,/Resources/Registry.txt"));
if (streamResourceInfo != null)
using var reader = new StreamReader(streamResourceInfo.Stream);
var registryStr = reader.ReadToEnd();
var newRegistryStr = registryStr.Replace("#", processModule.FileName.Replace("\\", "\\\\"));
File.WriteAllText(registryFilePath, newRegistryStr);
Process.Start(new ProcessStartInfo("cmd", $"/c {registryFilePath}")
{
using var reader = new StreamReader(streamResourceInfo.Stream);
var registryStr = reader.ReadToEnd();
var newRegistryStr = registryStr.Replace("#", processModule.FileName.Replace("\\", "\\\\"));
File.WriteAllText(registryFilePath, newRegistryStr);
Process.Start(new ProcessStartInfo("cmd", $"/c {registryFilePath}")
{
UseShellExecute = false,
CreateNoWindow = true
});
}
UseShellExecute = false,
CreateNoWindow = true
});
}
}
}
@@ -1,14 +1,13 @@
using System;
using HandyControl.Data;
namespace HandyControlDemo.Data
namespace HandyControlDemo.Data;
internal class AppConfig
{
internal class AppConfig
{
public static readonly string SavePath = $"{AppDomain.CurrentDomain.BaseDirectory}AppConfig.json";
public static readonly string SavePath = $"{AppDomain.CurrentDomain.BaseDirectory}AppConfig.json";
public string Lang { get; set; } = "zh-cn";
public string Lang { get; set; } = "zh-cn";
public SkinType Skin { get; set; }
}
public SkinType Skin { get; set; }
}
@@ -4,37 +4,37 @@
"selectedIndex": -1,
"group": false,
"demoItemList": [
[ "Brush", "BrushDemoCtl", "Brush_16x", "", "" ],
[ "Button", "ButtonDemoCtl", "ButtonClick_16x", "", "" ],
[ "RepeatButton", "RepeatButtonDemoCtl", "RepeatButton_16x", "", "" ],
[ "ToggleButton", "ToggleButtonDemoCtl", "Toggle_16x", "", "" ],
[ "RadioButton", "RadioButtonDemoCtl", "RadioButton_16x", "", "" ],
[ "CheckBox", "CheckBoxDemoCtl", "CheckBox_16x", "", "" ],
[ "ScrollViewer", "NativeScrollViewerDemoCtl", "ScrollBox_16x", "", "" ],
[ "Slider", "SliderDemoCtl", "Slider_16x", "", "" ],
[ "TextBlock", "TextBlockDemoCtl", "TextBlock_16x", "", "" ],
[ "TextBox", "NativeTextBoxDemoCtl", "TextBox_16x", "", "" ],
[ "ComboBox", "NativeComboBoxDemoCtl", "ComboBox_16x", "", "" ],
[ "PasswordBox", "NativePasswordBoxDemoCtl", "PasswordBox_16x", "", "" ],
[ "Expander", "ExpanderDemoCtl", "Expander_16x", "", "" ],
[ "ProgressBar", "NativeProgressBarDemoCtl", "ProgressBar_16x", "", "" ],
[ "Calendar", "CalendarDemoCtl", "Calendar_16x", "", "" ],
[ "DatePicker", "NativeDatePickerDemoCtl", "DatePicker_16x", "", "" ],
[ "TabControl", "NativeTabControlDemoCtl", "TabPage_16x", "", "" ],
[ "DataGrid", "DataGridDemoCtl", "DataGrid_16x", "", "" ],
[ "TreeView", "TreeViewDemoCtl", "TreeView_16x", "", "" ],
[ "ListBox", "ListBoxDemoCtl", "ListBox_16x", "", "" ],
[ "ListView", "ListViewDemoCtl", "ListView_16x", "", "" ],
[ "GroupBox", "GroupBoxDemoCtl", "GroupBox_16x", "", "" ],
[ "Menu", "MenuDemoCtl", "ContextMenu_16x", "", "" ],
[ "RichTextBox", "RichTextBoxDemoCtl", "RichTextBox_16x", "", "" ],
[ "FlowDocument", "FlowDocumentDemoCtl", "WPFFlowDocument_16x", "", "" ],
[ "ToolBar", "ToolBarDemoCtl", "ToolBar_16x", "", "" ],
[ "Border", "BorderDemoCtl", "BorderElement_16x", "", "" ],
[ "Label", "LabelDemoCtl", "Label_16x", "", "" ],
[ "Frame", "FrameDemoCtl", "frame_16xLG", "", "" ],
[ "Window", "NativeWindowDemoCtl", "WindowsForm_16x", "", "" ],
[ "Geometry", "GeometryDemoCtl", "Path_16x", "1", "" ]
[ "Brush", "BrushDemoCtl", "Brush.Brush", "", "" ],
[ "Button", "ButtonDemoCtl", "Brush.ButtonClick", "", "" ],
[ "RepeatButton", "RepeatButtonDemoCtl", "Brush.RepeatButton", "", "" ],
[ "ToggleButton", "ToggleButtonDemoCtl", "Brush.Toggle", "", "" ],
[ "RadioButton", "RadioButtonDemoCtl", "Brush.RadioButton", "", "" ],
[ "CheckBox", "CheckBoxDemoCtl", "Brush.CheckBoxChecked", "", "" ],
[ "ScrollViewer", "NativeScrollViewerDemoCtl", "Brush.ScrollBox", "", "" ],
[ "Slider", "SliderDemoCtl", "Brush.Slider", "", "" ],
[ "TextBlock", "TextBlockDemoCtl", "Brush.TextBlock", "", "" ],
[ "TextBox", "NativeTextBoxDemoCtl", "Brush.TextBox", "", "" ],
[ "ComboBox", "NativeComboBoxDemoCtl", "Brush.ComboBox", "", "" ],
[ "PasswordBox", "NativePasswordBoxDemoCtl", "Brush.PasswordBox", "", "" ],
[ "Expander", "ExpanderDemoCtl", "Brush.Expander", "", "" ],
[ "ProgressBar", "NativeProgressBarDemoCtl", "Brush.ProgressBar", "", "" ],
[ "Calendar", "CalendarDemoCtl", "Brush.Calendar", "", "" ],
[ "DatePicker", "NativeDatePickerDemoCtl", "Brush.DateTimePicker", "", "" ],
[ "TabControl", "NativeTabControlDemoCtl", "Brush.TabPage", "", "" ],
[ "DataGrid", "DataGridDemoCtl", "Brush.DataGrid", "", "" ],
[ "TreeView", "TreeViewDemoCtl", "Brush.TreeView", "", "" ],
[ "ListBox", "ListBoxDemoCtl", "Brush.ListBox", "", "" ],
[ "ListView", "ListViewDemoCtl", "Brush.ListView", "", "" ],
[ "GroupBox", "GroupBoxDemoCtl", "Brush.GroupBox", "", "" ],
[ "Menu", "MenuDemoCtl", "Brush.ContextMenu", "", "" ],
[ "RichTextBox", "RichTextBoxDemoCtl", "Brush.RichTextBox", "", "" ],
[ "FlowDocument", "FlowDocumentDemoCtl", "Brush.WPFFlowDocument", "", "" ],
[ "ToolBar", "ToolBarDemoCtl", "Brush.ToolBar", "", "" ],
[ "Border", "BorderDemoCtl", "Brush.BorderElement", "", "" ],
[ "Label", "LabelDemoCtl", "Brush.Label", "", "" ],
[ "Frame", "FrameDemoCtl", "Brush.FrameBorder", "", "" ],
[ "Window", "NativeWindowDemoCtl", "Brush.WindowsForm", "", "" ],
[ "Geometry", "GeometryDemoCtl", "Brush.Path", "", "" ]
]
},
{
@@ -42,74 +42,77 @@
"selectedIndex": 0,
"group": true,
"demoItemList": [
[ "FloatingBlock", "FloatingBlockDemoCtl", "thumbs_up", "", "Interacting" ],
[ "PropertyGrid", "PropertyGridDemoCtl", "PropertyGridEditorPart_16x", "1", "DataEntry" ],
[ "ImageSelector", "ImageSelectorDemoCtl", "Image_16x", "1", "DataEntry" ],
[ "ImageBlock", "ImageBlockDemoCtl", "ImageStack_16x", "", "DataDisplay" ],
[ "Magnifier", "MagnifierDemoCtl", "Search_16x", "", "Interacting" ],
[ "Gravatar", "GravatarDemoCtl", "User_16x", "", "DataDisplay" ],
[ "Badge", "BadgeDemoCtl", "DotLarge_16x", "", "DataDisplay" ],
[ "SplitButton", "SplitButtonDemoCtl", "SplitButton_16x", "", "Button" ],
[ "ButtonGroup", "ButtonGroupDemoCtl", "ButtonGroup_16x", "", "Button" ],
[ "ProgressButton", "ProgressButtonDemoCtl", "ProgressButton_16x", "", "Button" ],
[ "Poptip", "PoptipDemoCtl", "PopupCursor_16x", "", "DataDisplay" ],
[ "NumericUpDown", "NumericUpDownDemoCtl", "NumericListBox_16x", "", "DataEntry" ],
[ "TextBox", "TextBoxDemoCtl", "TextBox_16x", "", "DataEntry" ],
[ "ComboBox", "ComboBoxDemoCtl", "ComboBox_16x", "", "DataEntry" ],
[ "CheckComboBox", "CheckComboBoxDemoCtl", "CheckBoxList_16x", "1", "DataEntry" ],
[ "PasswordBox", "PasswordBoxDemoCtl", "PasswordBox_16x", "", "DataEntry" ],
[ "PinBox", "PinBoxDemoCtl", "Ellipsis_16x", "", "DataEntry" ],
[ "DatePicker", "DatePickerDemoCtl", "DatePicker_16x", "", "DataEntry" ],
[ "Clock", "ClockDemoCtl", "Time_color_16x", "", "DataEntry" ],
[ "TimePicker", "TimePickerDemoCtl", "TimePicker_16x", "", "DataEntry" ],
[ "CalendarWithClock", "CalendarWithClockDemoCtl", "Calendar_16x", "", "DataEntry" ],
[ "DateTimePicker", "DateTimePickerDemoCtl", "DatePicker_16x", "", "DataEntry" ],
[ "Transfer", "TransferDemoCtl", "Transfer_16x", "", "DataEntry" ],
[ "FlipClock", "FlipClockDemoCtl", "FlipVertical_16x", "", "DataDisplay" ],
[ "Rate", "RateDemoCtl", "Star", "", "DataEntry" ],
[ "Shield", "ShieldDemoCtl", "Shield_16x", "", "DataDisplay" ],
[ "SearchBar", "SearchBarDemoCtl", "Search_16x", "", "DataEntry" ],
[ "Tag", "TagDemoCtl", "Tag_16x", "", "DataDisplay" ],
[ "GifImage", "GifImageDemoCtl", "Animation_16x", "", "DataDisplay" ],
[ "OutlineText", "OutlineTextDemoCtl", "TextBlock_16x", "", "DataDisplay" ],
[ "RunningBlock", "RunningBlockDemoCtl", "Dynamic_16x", "", "DataDisplay" ],
[ "Card", "CardDemoCtl", "VSO_Card_16x", "", "DataDisplay" ],
[ "Divider", "DividerDemoCtl", "DottedSplitter_16x", "", "Layout" ],
[ "CirclePanel", "CirclePanelDemoCtl", "ColorWheel_16x", "", "Layout" ],
[ "Grid", "GridDemoCtl", "GridPane_16x", "", "Layout" ],
[ "FlexPanel", "FlexPanelDemoCtl", "layout-FlexLayout-16", "1", "Layout" ],
[ "UniformSpacingPanel", "UniformSpacingPanelDemoCtl", "IncreaseHorizontalSpacing_16x", "1", "Layout" ],
[ "RelativePanel", "RelativePanelDemoCtl", "TransformRelative_16x", "", "Layout" ],
[ "WaterfallPanel", "WaterfallPanelDemoCtl", "Panel_16x", "", "Layout" ],
[ "HoneycombPanel", "HoneycombPanelDemoCtl", "PolygonHexagon_16x", "", "Layout" ],
[ "TransitioningContentControl", "TransitioningContentControlDemoCtl", "TransitioningContentControl_16x", "", "Interacting" ],
[ "Drawer", "DrawerDemoCtl", "View_Portrait_16x", "", "Feedback" ],
[ "CoverView", "CoverViewDemoCtl", "DetailDataView_16x", "", "DataDisplay" ],
[ "CoverFlow", "CoverFlowDemoCtl", "LinearCarousel_16x", "", "DataDisplay" ],
[ "ProgressBar", "ProgressBarDemoCtl", "ProgressBar_16x", "", "Feedback" ],
[ "StepBar", "StepBarDemoCtl", "Flow_16x", "", "Navigation" ],
[ "Growl", "GrowlDemoCtl", "Message_16x", "", "Feedback" ],
[ "Loading", "LoadingDemoCtl", "Loading_Blue_16x", "", "Feedback" ],
[ "ColorPicker", "ColorPickerDemoCtl", "ColorPalette_16x", "", "DataEntry" ],
[ "Carousel", "CarouselDemoCtl", "Carousel_16x", "", "DataDisplay" ],
[ "CompareSlider", "CompareSliderDemoCtl", "SplitterControl_16x", "", "Interacting" ],
[ "PreviewSlider", "PreviewSliderDemoCtl", "HoverMenu_16x", "", "DataEntry" ],
[ "RangeSlider", "RangeSliderDemoCtl", "brackets_Square_16xLG", "", "DataEntry" ],
[ "TimeBar", "TimeBarDemoCtl", "Timeline_16x", "", "DataEntry" ],
[ "Pagination", "PaginationDemoCtl", "Paginator_16x", "", "Navigation" ],
[ "TabControl", "TabControlDemoCtl", "TabPage_16x", "", "DataDisplay" ],
[ "SideMenu", "SideMenuDemoCtl", "MainMenuControl_16x", "", "Navigation" ],
[ "Notification", "NotificationDemoCtl", "Procedure_16x", "", "Feedback" ],
[ "Dialog", "DialogDemoCtl", "Dialog_16x", "", "Feedback" ],
[ "Screenshot", "ScreenshotDemoCtl", "WindowScreenshot_16x", "", "" ],
[ "GotoTop", "GotoTopDemoCtl", "GoToTop_16x", "", "" ],
[ "ChatBubble", "ChatBubbleDemoCtl", "Bubble_16xLG", "", "" ],
[ "NotifyIcon", "NotifyIconDemoCtl", "NotificationHub_16x", "", "" ],
[ "ImageBrowser", "ImageBrowserDemoCtl", "ImageBrowser_16x", "", "" ],
[ "AnimationPath", "AnimationPathDemoCtl", "Path_16x", "", "" ],
[ "ScrollViewer", "ScrollViewerDemoCtl", "ScrollBox_16x", "", "" ],
[ "Sprite", "SpriteDemoCtl", "HandyControl", "", "" ],
[ "Window", "WindowDemoCtl", "WindowsForm_16x", "", "" ]
[ "FloatingBlock", "FloatingBlockDemoCtl", "Brush.LikeFilled", "", "Interacting" ],
[ "PropertyGrid", "PropertyGridDemoCtl", "Brush.PropertyGridEditorPart", "", "DataEntry" ],
[ "ImageSelector", "ImageSelectorDemoCtl", "Brush.Image", "", "DataEntry" ],
[ "ImageBlock", "ImageBlockDemoCtl", "Brush.ImageStack", "", "DataDisplay" ],
[ "Magnifier", "MagnifierDemoCtl", "Brush.Search", "", "Interacting" ],
[ "Gravatar", "GravatarDemoCtl", "Brush.User", "", "DataDisplay" ],
[ "Badge", "BadgeDemoCtl", "Brush.CheckDot", "", "DataDisplay" ],
[ "SplitButton", "SplitButtonDemoCtl", "Brush.SplitButton", "", "Button" ],
[ "ButtonGroup", "ButtonGroupDemoCtl", "Brush.ButtonGroup", "", "Button" ],
[ "ProgressButton", "ProgressButtonDemoCtl", "Brush.ProgressBarStatusBar8", "", "Button" ],
[ "Poptip", "PoptipDemoCtl", "Brush.ToolTip", "", "DataDisplay" ],
[ "NumericUpDown", "NumericUpDownDemoCtl", "Brush.NumericListBox", "", "DataEntry" ],
[ "TextBox", "TextBoxDemoCtl", "Brush.TextBox", "", "DataEntry" ],
[ "ComboBox", "ComboBoxDemoCtl", "Brush.ComboBox", "", "DataEntry" ],
[ "CheckComboBox", "CheckComboBoxDemoCtl", "Brush.CheckBoxList", "", "DataEntry" ],
[ "AutoCompleteTextBox", "AutoCompleteTextBoxDemoCtl", "Brush.AutoComplete", "1", "DataEntry" ],
[ "PasswordBox", "PasswordBoxDemoCtl", "Brush.PasswordBox", "", "DataEntry" ],
[ "PinBox", "PinBoxDemoCtl", "Brush.Ellipsis", "", "DataEntry" ],
[ "DatePicker", "DatePickerDemoCtl", "Brush.DateTimePicker", "", "DataEntry" ],
[ "Clock", "ClockDemoCtl", "Brush.Time", "", "DataEntry" ],
[ "TimePicker", "TimePickerDemoCtl", "Brush.TimePicker", "", "DataEntry" ],
[ "CalendarWithClock", "CalendarWithClockDemoCtl", "Brush.Calendar", "", "DataEntry" ],
[ "DateTimePicker", "DateTimePickerDemoCtl", "Brush.DateTimePicker", "", "DataEntry" ],
[ "Transfer", "TransferDemoCtl", "Brush.SyncArrow", "", "DataEntry" ],
[ "FlipClock", "FlipClockDemoCtl", "Brush.FlipVertical", "", "DataDisplay" ],
[ "Rate", "RateDemoCtl", "Brush.HeartFilled", "", "DataEntry" ],
[ "Shield", "ShieldDemoCtl", "Brush.SplitKeyValuePair", "", "DataDisplay" ],
[ "SearchBar", "SearchBarDemoCtl", "Brush.Search", "", "DataEntry" ],
[ "Tag", "TagDemoCtl", "Brush.Tag", "", "DataDisplay" ],
[ "GifImage", "GifImageDemoCtl", "Brush.Animation", "", "DataDisplay" ],
[ "OutlineText", "OutlineTextDemoCtl", "Brush.TextBlock", "", "DataDisplay" ],
[ "RunningBlock", "RunningBlockDemoCtl", "Brush.Dynamic", "", "DataDisplay" ],
[ "Card", "CardDemoCtl", "Brush.ContactCard", "", "DataDisplay" ],
[ "ElementGroup", "ElementGroupDemoCtl", "Brush.ButtonGroup", "1", "Layout" ],
[ "Divider", "DividerDemoCtl", "Brush.DottedSplitter", "", "Layout" ],
[ "CirclePanel", "CirclePanelDemoCtl", "Brush.ColorWheel", "", "Layout" ],
[ "Grid", "GridDemoCtl", "Brush.GridPane", "", "Layout" ],
[ "FlexPanel", "FlexPanelDemoCtl", "Brush.FlowLayoutPanel", "1", "Layout" ],
[ "UniformSpacingPanel", "UniformSpacingPanelDemoCtl", "Brush.IncreaseHorizontalSpacing", "1", "Layout" ],
[ "RelativePanel", "RelativePanelDemoCtl", "Brush.TransformRelative", "", "Layout" ],
[ "WaterfallPanel", "WaterfallPanelDemoCtl", "Brush.Panel", "", "Layout" ],
[ "HoneycombPanel", "HoneycombPanelDemoCtl", "Brush.PolygonHexagon", "", "Layout" ],
[ "TransitioningContentControl", "TransitioningContentControlDemoCtl", "Brush.TransitioningContentControl", "", "Interacting" ],
[ "Drawer", "DrawerDemoCtl", "Brush.TransactedReceiveScope", "", "Feedback" ],
[ "CoverView", "CoverViewDemoCtl", "Brush.DetailDataView", "", "DataDisplay" ],
[ "CoverFlow", "CoverFlowDemoCtl", "Brush.LinearCarousel", "", "DataDisplay" ],
[ "ProgressBar", "ProgressBarDemoCtl", "Brush.ProgressBar", "", "Feedback" ],
[ "StepBar", "StepBarDemoCtl", "Brush.Flow", "", "Navigation" ],
[ "Growl", "GrowlDemoCtl", "Brush.Message", "", "Feedback" ],
[ "Loading", "LoadingDemoCtl", "Brush.Loading", "", "Feedback" ],
[ "ColorPicker", "ColorPickerDemoCtl", "Brush.ColorPalette", "", "DataEntry" ],
[ "Carousel", "CarouselDemoCtl", "Brush.Carousel", "", "DataDisplay" ],
[ "CompareSlider", "CompareSliderDemoCtl", "Brush.SplitterControl", "", "Interacting" ],
[ "PreviewSlider", "PreviewSliderDemoCtl", "Brush.HoverMenu", "", "DataEntry" ],
[ "RangeSlider", "RangeSliderDemoCtl", "Brush.Indexer", "", "DataEntry" ],
[ "TimeBar", "TimeBarDemoCtl", "Brush.Timeline", "", "DataEntry" ],
[ "Pagination", "PaginationDemoCtl", "Brush.Paginator", "", "Navigation" ],
[ "TabControl", "TabControlDemoCtl", "Brush.TabPage", "", "DataDisplay" ],
[ "SideMenu", "SideMenuDemoCtl", "Brush.MainMenuControl", "", "Navigation" ],
[ "Notification", "NotificationDemoCtl", "Brush.Procedure", "", "Feedback" ],
[ "Dialog", "DialogDemoCtl", "Brush.Dialog", "", "Feedback" ],
[ "Screenshot", "ScreenshotDemoCtl", "Brush.WindowScreenshot", "", "" ],
[ "GotoTop", "GotoTopDemoCtl", "Brush.GoToTop", "", "" ],
[ "ChatBubble", "ChatBubbleDemoCtl", "Brush.FeedbackBubble", "", "" ],
[ "Watermark", "WatermarkDemoCtl", "Brush.GridLight", "1", "" ],
[ "NotifyIcon", "NotifyIconDemoCtl", "Brush.NotificationHub", "", "" ],
[ "ImageBrowser", "ImageBrowserDemoCtl", "Brush.ImageBrowser", "", "" ],
[ "AnimationPath", "AnimationPathDemoCtl", "Brush.Path", "", "" ],
[ "ScrollViewer", "ScrollViewerDemoCtl", "Brush.ScrollBox", "", "" ],
[ "Sprite", "SpriteDemoCtl", "Brush.HandyControl", "", "" ],
[ "Window", "WindowDemoCtl", "Brush.WindowsForm", "", "" ]
]
},
{
@@ -117,9 +120,9 @@
"selectedIndex": 0,
"group": false,
"demoItemList": [
[ "HatchBrushGenerator", "HatchBrushGeneratorDemoCtl", "DataGenerator_16x", "", "" ],
[ "Morphing_Animation", "GeometryAnimationDemoCtl", "Animation_16x", "", "" ],
[ "Effects", "EffectsDemoCtl", "Effects_16x", "", "" ]
[ "HatchBrushGenerator", "HatchBrushGeneratorDemoCtl", "Brush.DataGenerator", "", "" ],
[ "Morphing_Animation", "GeometryAnimationDemoCtl", "Brush.Animation", "", "" ],
[ "Effects", "EffectsDemoCtl", "Brush.Effects", "", "" ]
]
}
]
@@ -1,13 +1,12 @@
namespace HandyControlDemo.Data
namespace HandyControlDemo.Data;
public enum DemoType
{
public enum DemoType
{
Type1 = 1,
Type2,
Type3,
Type4,
Type5,
Type6
}
Type1 = 1,
Type2,
Type3,
Type4,
Type5,
Type6
}
@@ -1,38 +1,37 @@
using System.IO;
using Newtonsoft.Json;
namespace HandyControlDemo.Data
namespace HandyControlDemo.Data;
internal class GlobalData
{
internal class GlobalData
public static void Init()
{
public static void Init()
if (File.Exists(AppConfig.SavePath))
{
if (File.Exists(AppConfig.SavePath))
try
{
try
{
var json = File.ReadAllText(AppConfig.SavePath);
Config = (string.IsNullOrEmpty(json) ? new AppConfig() : JsonConvert.DeserializeObject<AppConfig>(json)) ?? new AppConfig();
}
catch
{
Config = new AppConfig();
}
var json = File.ReadAllText(AppConfig.SavePath);
Config = (string.IsNullOrEmpty(json) ? new AppConfig() : JsonConvert.DeserializeObject<AppConfig>(json)) ?? new AppConfig();
}
else
catch
{
Config = new AppConfig();
}
}
public static void Save()
else
{
var json = JsonConvert.SerializeObject(Config);
File.WriteAllText(AppConfig.SavePath, json);
Config = new AppConfig();
}
public static AppConfig Config { get; set; }
public static bool NotifyIconIsShow { get; set; }
}
public static void Save()
{
var json = JsonConvert.SerializeObject(Config);
File.WriteAllText(AppConfig.SavePath, json);
}
public static AppConfig Config { get; set; }
public static bool NotifyIconIsShow { get; set; }
}
@@ -1,56 +1,57 @@
namespace HandyControlDemo.Data
namespace HandyControlDemo.Data;
public class MessageToken
{
public class MessageToken
{
public static readonly string LoadShowContent = nameof(LoadShowContent);
public static readonly string LoadShowContent = nameof(LoadShowContent);
public static readonly string FullSwitch = nameof(FullSwitch);
public static readonly string FullSwitch = nameof(FullSwitch);
public static readonly string ContributorsView = nameof(ContributorsView);
public static readonly string ContributorsView = nameof(ContributorsView);
public static readonly string ClearLeftSelected = nameof(ClearLeftSelected);
public static readonly string ClearLeftSelected = nameof(ClearLeftSelected);
public static readonly string SendChatMessage = nameof(SendChatMessage);
public static readonly string SendChatMessage = nameof(SendChatMessage);
public static readonly string GrowlDemoPanel = nameof(GrowlDemoPanel);
public static readonly string GrowlDemoPanel = nameof(GrowlDemoPanel);
public static readonly string DialogDemoWindow = nameof(DialogDemoWindow);
public static readonly string DialogDemoWindow = nameof(DialogDemoWindow);
public static readonly string MainWindow = nameof(MainWindow);
public static readonly string MainWindow = nameof(MainWindow);
public static readonly string PracticalDemo = nameof(PracticalDemo);
public static readonly string PracticalDemo = nameof(PracticalDemo);
public static readonly string ProjectsView = nameof(ProjectsView);
public static readonly string ProjectsView = nameof(ProjectsView);
public static readonly string BlogsView = nameof(BlogsView);
public static readonly string BlogsView = nameof(BlogsView);
public static readonly string WebsitesView = nameof(WebsitesView);
public static readonly string WebsitesView = nameof(WebsitesView);
public static readonly string NotifyIconDemo = nameof(NotifyIconDemo);
public static readonly string NotifyIconDemo = nameof(NotifyIconDemo);
public static readonly string NotifyIconContextDemo = nameof(NotifyIconContextDemo);
public static readonly string NotifyIconContextDemo = nameof(NotifyIconContextDemo);
public static readonly string CommonWindow = nameof(CommonWindow);
public static readonly string CommonWindow = nameof(CommonWindow);
public static readonly string BlurWindow = nameof(BlurWindow);
public static readonly string BlurWindow = nameof(BlurWindow);
public static readonly string CustomNonClientAreaWindow = nameof(CustomNonClientAreaWindow);
public static readonly string CustomNonClientAreaWindow = nameof(CustomNonClientAreaWindow);
public static readonly string NoNonClientAreaDragableWindow = nameof(NoNonClientAreaDragableWindow);
public static readonly string NoNonClientAreaDragableWindow = nameof(NoNonClientAreaDragableWindow);
public static readonly string QQGroupView = nameof(QQGroupView);
public static readonly string QQGroupView = nameof(QQGroupView);
public static readonly string GlowWindow = nameof(GlowWindow);
public static readonly string GlowWindow = nameof(GlowWindow);
public static readonly string NativeCommonWindow = nameof(NativeCommonWindow);
public static readonly string NativeCommonWindow = nameof(NativeCommonWindow);
public static readonly string NavigationWindow = nameof(NavigationWindow);
public static readonly string NavigationWindow = nameof(NavigationWindow);
public static readonly string TouchDragMoveWindow = nameof(TouchDragMoveWindow);
public static readonly string TouchDragMoveWindow = nameof(TouchDragMoveWindow);
public static readonly string DialogContainer = nameof(DialogContainer);
public static readonly string DialogContainer = nameof(DialogContainer);
public static readonly string LangUpdated = nameof(LangUpdated);
public static readonly string LangUpdated = nameof(LangUpdated);
public static readonly string SkinUpdated = nameof(SkinUpdated);
}
}
@@ -28,7 +28,8 @@ var messageList = new List<string>
"NavigationWindow",
"TouchDragMoveWindow",
"DialogContainer",
"LangUpdated"
"LangUpdated",
"SkinUpdated"
};
#>
namespace HandyControlDemo.Data
@@ -40,4 +41,4 @@ namespace HandyControlDemo.Data
<#}#>
}
}
}
@@ -1,12 +1,11 @@
namespace HandyControlDemo.Data
namespace HandyControlDemo.Data;
public class AvatarModel
{
public class AvatarModel
{
public string DisplayName { get; set; }
public string DisplayName { get; set; }
public string Link { get; set; }
public string Link { get; set; }
public string AvatarUri { get; set; }
}
public string AvatarUri { get; set; }
}
Loaded 100 of 1325 files, more files were not shown because too many files have changed in this diff. Show more