diff --git a/GeothermalResearchInstitute/GeothermalResearchInstitute.Wpf/GeothermalResearchInstitute.Wpf.csproj b/GeothermalResearchInstitute/GeothermalResearchInstitute.Wpf/GeothermalResearchInstitute.Wpf.csproj
index 3bb4464a..e47b5f5d 100644
--- a/GeothermalResearchInstitute/GeothermalResearchInstitute.Wpf/GeothermalResearchInstitute.Wpf.csproj
+++ b/GeothermalResearchInstitute/GeothermalResearchInstitute.Wpf/GeothermalResearchInstitute.Wpf.csproj
@@ -11,7 +11,6 @@
False
-
@@ -33,6 +32,7 @@
+
diff --git a/OneDotNet.sln b/OneDotNet.sln
index d5692bad..bfabe8be 100644
--- a/OneDotNet.sln
+++ b/OneDotNet.sln
@@ -120,6 +120,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "docs", "docs", "{9578F6A5-5
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SerilogLab", "codelab\SerilogLab\SerilogLab.csproj", "{B0AF0ADB-08FE-4312-BDDE-3C3562FB7E37}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Xceed.Wpf.Toolkit", "third_party\ExtendedWPFToolkit\Xceed.Wpf.Toolkit\Xceed.Wpf.Toolkit.csproj", "{72E591D6-8F83-4D8C-8F67-9C325E623234}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -321,6 +323,12 @@ Global
{B0AF0ADB-08FE-4312-BDDE-3C3562FB7E37}.DebugNonWindows|Any CPU.Build.0 = Debug|Any CPU
{B0AF0ADB-08FE-4312-BDDE-3C3562FB7E37}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B0AF0ADB-08FE-4312-BDDE-3C3562FB7E37}.Release|Any CPU.Build.0 = Release|Any CPU
+ {72E591D6-8F83-4D8C-8F67-9C325E623234}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {72E591D6-8F83-4D8C-8F67-9C325E623234}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {72E591D6-8F83-4D8C-8F67-9C325E623234}.DebugNonWindows|Any CPU.ActiveCfg = Debug|Any CPU
+ {72E591D6-8F83-4D8C-8F67-9C325E623234}.DebugNonWindows|Any CPU.Build.0 = Debug|Any CPU
+ {72E591D6-8F83-4D8C-8F67-9C325E623234}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {72E591D6-8F83-4D8C-8F67-9C325E623234}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -363,6 +371,7 @@ Global
{D724B7E1-7DCF-4BF2-AAF6-B4CDB743DB99} = {BB7EFF62-B03A-4996-9798-17DB422DD96F}
{9578F6A5-5C44-46F3-9965-DEF4D39FC5D5} = {BB7EFF62-B03A-4996-9798-17DB422DD96F}
{B0AF0ADB-08FE-4312-BDDE-3C3562FB7E37} = {9D7C39A1-EF36-4491-8CC0-2D45C3B51580}
+ {72E591D6-8F83-4D8C-8F67-9C325E623234} = {E307CA64-13F5-446A-BCA5-C611A235A2E4}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {E0F2E2F1-944D-46B4-BA89-EE1F0BBD57A1}
diff --git a/copy.bara.sky b/copy.bara.sky
index e5f05c66..1bb053c6 100644
--- a/copy.bara.sky
+++ b/copy.bara.sky
@@ -159,7 +159,44 @@ core.workflow(
# TODO(zhangshuai.ustc): Add https://github.com/fallin/Itc4net/tree/master/src/Itc4net
# and then fix Clocks.IntervalTreeClocks
-# TODO(zhangshuai.ustc): Add https://github.com/xceedsoftware/wpftoolkit
+# TODO(zhangshuai.ustc): WIP https://github.com/xceedsoftware/wpftoolkit
+core.workflow(
+ name = "com_github_xceedsoftware_wpftoolkit",
+ origin = git.github_origin(
+ url = "https://github.com/xceedsoftware/wpftoolkit",
+ ref = "1e0b826e1fca8cdb2bb4640194c906ac23e53c2b", # 3.7.0@2019-11-26
+ ),
+ destination = DESTINATION,
+ origin_files = glob(
+ [
+ ".gitignore",
+ "README.md",
+ "license.md",
+ "ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/**",
+ ]
+ ),
+ destination_files = glob(
+ [
+ "third_party/ExtendedWPFToolkit/Xceed.Wpf.Toolkit/**",
+ "third_party/ExtendedWPFToolkit/.gitignore",
+ "third_party/ExtendedWPFToolkit/README.md",
+ "third_party/ExtendedWPFToolkit/LICENSE.md",
+ ],
+ exclude = [
+ "**/*.csproj",
+ ],
+ ),
+ authoring = authoring.pass_thru("Shuai Zhang "),
+ transformations = [
+ core.move(".gitignore", "third_party/ExtendedWPFToolkit/.gitignore"),
+ core.move("README.md", "third_party/ExtendedWPFToolkit/README.md"),
+ core.move("license", "third_party/ExtendedWPFToolkit/LICENSE.md"),
+ core.move(
+ "ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/",
+ "third_party/ExtendedWPFToolkit/Xceed.Wpf.Toolkit/"
+ ),
+ ],
+)
# third_party/CRC32.NET/native folder is from https://cdn.machinezoo.com/download/crc32c/crc32c-hw-1.0.5.7z
core.workflow(
diff --git a/third_party/ExtendedWPFToolkit/.gitignore b/third_party/ExtendedWPFToolkit/.gitignore
new file mode 100644
index 00000000..89c66054
--- /dev/null
+++ b/third_party/ExtendedWPFToolkit/.gitignore
@@ -0,0 +1,295 @@
+## Ignore Visual Studio temporary files, build results, and
+## files generated by popular Visual Studio add-ons.
+##
+## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
+
+# User-specific files
+*.suo
+*.user
+*.userosscache
+*.sln.docstates
+
+# User-specific files (MonoDevelop/Xamarin Studio)
+*.userprefs
+
+# Build results
+[Dd]ebug/
+[Dd]ebugPublic/
+[Rr]elease/
+[Rr]eleases/
+x64/
+x86/
+bld/
+[Bb]in/
+[Oo]bj/
+[Ll]og/
+
+# Visual Studio 2015 cache/options directory
+.vs/
+# Uncomment if you have tasks that create the project's static files in wwwroot
+#wwwroot/
+
+# MSTest test Results
+[Tt]est[Rr]esult*/
+[Bb]uild[Ll]og.*
+
+# NUNIT
+*.VisualState.xml
+TestResult.xml
+
+# Build Results of an ATL Project
+[Dd]ebugPS/
+[Rr]eleasePS/
+dlldata.c
+
+# Benchmark Results
+BenchmarkDotNet.Artifacts/
+
+# .NET Core
+project.lock.json
+project.fragment.lock.json
+artifacts/
+**/Properties/launchSettings.json
+
+*_i.c
+*_p.c
+*_i.h
+*.ilk
+*.meta
+*.obj
+*.pch
+*.pdb
+*.pgc
+*.pgd
+*.rsp
+*.sbr
+*.tlb
+*.tli
+*.tlh
+*.tmp
+*.tmp_proj
+*.log
+*.vspscc
+*.vssscc
+.builds
+*.pidb
+*.svclog
+*.scc
+
+# Chutzpah Test files
+_Chutzpah*
+
+# Visual C++ cache files
+ipch/
+*.aps
+*.ncb
+*.opendb
+*.opensdf
+*.sdf
+*.cachefile
+*.VC.db
+*.VC.VC.opendb
+
+# Visual Studio profiler
+*.psess
+*.vsp
+*.vspx
+*.sap
+
+# TFS 2012 Local Workspace
+$tf/
+
+# Guidance Automation Toolkit
+*.gpState
+
+# ReSharper is a .NET coding add-in
+_ReSharper*/
+*.[Rr]e[Ss]harper
+*.DotSettings.user
+
+# JustCode is a .NET coding add-in
+.JustCode
+
+# TeamCity is a build add-in
+_TeamCity*
+
+# DotCover is a Code Coverage Tool
+*.dotCover
+
+# Visual Studio code coverage results
+*.coverage
+*.coveragexml
+
+# NCrunch
+_NCrunch_*
+.*crunch*.local.xml
+nCrunchTemp_*
+
+# MightyMoose
+*.mm.*
+AutoTest.Net/
+
+# Web workbench (sass)
+.sass-cache/
+
+# Installshield output folder
+[Ee]xpress/
+
+# DocProject is a documentation generator add-in
+DocProject/buildhelp/
+DocProject/Help/*.HxT
+DocProject/Help/*.HxC
+DocProject/Help/*.hhc
+DocProject/Help/*.hhk
+DocProject/Help/*.hhp
+DocProject/Help/Html2
+DocProject/Help/html
+
+# Click-Once directory
+publish/
+
+# Publish Web Output
+*.[Pp]ublish.xml
+*.azurePubxml
+# Note: Comment the next line if you want to checkin your web deploy settings,
+# but database connection strings (with potential passwords) will be unencrypted
+*.pubxml
+*.publishproj
+
+# Microsoft Azure Web App publish settings. Comment the next line if you want to
+# checkin your Azure Web App publish settings, but sensitive information contained
+# in these scripts will be unencrypted
+PublishScripts/
+
+# NuGet Packages
+*.nupkg
+# The packages folder can be ignored because of Package Restore
+**/packages/*
+# except build/, which is used as an MSBuild target.
+!**/packages/build/
+# Uncomment if necessary however generally it will be regenerated when needed
+#!**/packages/repositories.config
+# NuGet v3's project.json files produces more ignorable files
+*.nuget.props
+*.nuget.targets
+
+# Microsoft Azure Build Output
+csx/
+*.build.csdef
+
+# Microsoft Azure Emulator
+ecf/
+rcf/
+
+# Windows Store app package directories and files
+AppPackages/
+BundleArtifacts/
+Package.StoreAssociation.xml
+_pkginfo.txt
+*.appx
+
+# Visual Studio cache files
+# files ending in .cache can be ignored
+*.[Cc]ache
+# but keep track of directories ending in .cache
+!*.[Cc]ache/
+
+# Others
+ClientBin/
+~$*
+*~
+*.dbmdl
+*.dbproj.schemaview
+*.jfm
+*.pfx
+*.publishsettings
+orleans.codegen.cs
+
+# Since there are multiple workflows, uncomment next line to ignore bower_components
+# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
+#bower_components/
+
+# RIA/Silverlight projects
+Generated_Code/
+
+# Backup & report files from converting an old project file
+# to a newer Visual Studio version. Backup files are not needed,
+# because we have git ;-)
+_UpgradeReport_Files/
+Backup*/
+UpgradeLog*.XML
+UpgradeLog*.htm
+
+# SQL Server files
+*.mdf
+*.ldf
+*.ndf
+
+# Business Intelligence projects
+*.rdl.data
+*.bim.layout
+*.bim_*.settings
+
+# Microsoft Fakes
+FakesAssemblies/
+
+# GhostDoc plugin setting file
+*.GhostDoc.xml
+
+# Node.js Tools for Visual Studio
+.ntvs_analysis.dat
+node_modules/
+
+# Typescript v1 declaration files
+typings/
+
+# Visual Studio 6 build log
+*.plg
+
+# Visual Studio 6 workspace options file
+*.opt
+
+# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
+*.vbw
+
+# Visual Studio LightSwitch build output
+**/*.HTMLClient/GeneratedArtifacts
+**/*.DesktopClient/GeneratedArtifacts
+**/*.DesktopClient/ModelManifest.xml
+**/*.Server/GeneratedArtifacts
+**/*.Server/ModelManifest.xml
+_Pvt_Extensions
+
+# Paket dependency manager
+.paket/paket.exe
+paket-files/
+
+# FAKE - F# Make
+.fake/
+
+# JetBrains Rider
+.idea/
+*.sln.iml
+
+# CodeRush
+.cr/
+
+# Python Tools for Visual Studio (PTVS)
+__pycache__/
+*.pyc
+
+# Cake - Uncomment if you are using it
+# tools/**
+# !tools/packages.config
+
+# Tabs Studio
+*.tss
+
+# Telerik's JustMock configuration file
+*.jmconfig
+
+# BizTalk build output
+*.btp.cs
+*.btm.cs
+*.odx.cs
+*.xsd.cs
diff --git a/third_party/ExtendedWPFToolkit/LICENSE.md b/third_party/ExtendedWPFToolkit/LICENSE.md
new file mode 100644
index 00000000..d834f77f
--- /dev/null
+++ b/third_party/ExtendedWPFToolkit/LICENSE.md
@@ -0,0 +1,31 @@
+# Microsoft Public License (Ms-PL)
+
+This license governs use of the accompanying software. If you use the software, you accept this license. If you do not accept the license, do not use the software.
+
+## 1. Definitions
+
+The terms "reproduce," "reproduction," "derivative works," and "distribution" have the same meaning here as under U.S. copyright law.
+
+A "contribution" is the original software, or any additions or changes to the software.
+
+A "contributor" is any person that distributes its contribution under this license.
+
+"Licensed patents" are a contributor's patent claims that read directly on its contribution.
+
+## 2. Grant of Rights
+
+(A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create.
+
+(B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software.
+
+## 3. Conditions and Limitations
+
+(A) No Trademark License- This license does not grant you rights to use any contributors' name, logo, or trademarks.
+
+(B) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor to the software ends automatically.
+
+(C) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software.
+
+(D) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license.
+
+(E) The software is licensed "as-is." You bear the risk of using it. The contributors give no express warranties, guarantees or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a particular purpose and non-infringement.
diff --git a/third_party/ExtendedWPFToolkit/README.md b/third_party/ExtendedWPFToolkit/README.md
new file mode 100644
index 00000000..d8dbf4d3
--- /dev/null
+++ b/third_party/ExtendedWPFToolkit/README.md
@@ -0,0 +1,199 @@
+# Extended WPF Toolkit™
+
+Extended WPF Toolkit™ by [Xceed](https://xceed.com) is the number one collection of WPF controls, components and utilities for creating next generation Windows applications. Use it to build professional looking, modern, and easy to use WPF applications. It has been downloaded more than 1 million times here, on Codeplex, and on [NuGet](http://www.nuget.org/packages/Extended.Wpf.Toolkit/).
+
+This free and open source toolkit is provided under the [Microsoft Public License](https://opensource.org/licenses/MS-PL). A summary can be found on [tl;drLegal](https://tldrlegal.com/license/microsoft-public-license-(ms-pl)).
+
+Xceed offers the [Plus Edition](../../wiki/Xceed-Toolkit-Plus-for-WPF) for developers that want to support the project, get additional controls and features, get updates and professional support, and work with a version a few releases ahead.
+
+## Latest news
+
+**September 27, 2019** v3.6.0 released with [36 bug fixes and improvements](../../wiki/Improvements-in-v3.6.0).
+
+**February 7, 2019** v3.5.0 released with [26 bug fixes and improvements](../../wiki/Improvements-in-v3.5.0).
+
+*January 30, 2019* v3.8.0 of the [Plus Edition](../../wiki/Xceed-Toolkit-Plus-for-WPF) released with [45 bug fixes and improvements](../../wiki/Improvements-in-v3.5.0#Plus380)
+
+*June 18, 2018* v3.7.0 of the [Plus Edition](../../wiki/Xceed-Toolkit-Plus-for-WPF) released with [27 bug fixes and improvements](../../wiki/Improvements-in-v3.5.0#Plus370)
+
+*January 15, 2018* v3.6.0 of the [Plus Edition](../../wiki/Xceed-Toolkit-Plus-for-WPF) released with [1 new control and 40 bug fixes and improvements](../../wiki/Improvements-in-v3.5.0#Plus360)
+
+**July 11, 2017:** The project's new home is Github. All issues from Codeplex are now located here.
+
+
+
+## Controls included
+
+