diff --git a/CustomWpf/CustomWpf.sln b/CustomWpf/CustomWpf.sln
new file mode 100644
index 00000000000..5be3cf3aedd
--- /dev/null
+++ b/CustomWpf/CustomWpf.sln
@@ -0,0 +1,58 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.0.32014.148
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "dotnetCampus.WPF", "Lib\dotnetCampus.CustomWpf.Lib\dotnetCampus.WPF.csproj", "{39764FE3-C2F9-4772-9BF6-B66923ABEC4C}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Lib", "Lib", "{FE032A91-A790-4274-A194-02E161D1F14B}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Packaging", "Packaging", "{27886E90-E328-4AE9-86DA-1F596554D26B}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "dotnetCampus.WPF.NuGet", "Packaging\dotnetCampus.WPF.NuGet\dotnetCampus.WPF.NuGet.csproj", "{FDC9151F-3544-4C68-9D05-D8E4935F1A9F}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "dotnetCampus.WPF.Resource", "Lib\dotnetCampus.CustomWpf.Resource\dotnetCampus.WPF.Resource.csproj", "{D73CB485-6290-4E37-B441-8068E60CBF7E}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{315B416C-6CDA-4CD5-9666-69C8272CD80E}"
+ ProjectSection(SolutionItems) = preProject
+ build\Version.props = build\Version.props
+ EndProjectSection
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "dotnetCampus.WPF.Dependencies", "Lib\dotnetCampus.CustomWpf.Dependencies\dotnetCampus.WPF.Dependencies.csproj", "{39E01A9E-C352-4B7E-96CA-612A07937470}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {39764FE3-C2F9-4772-9BF6-B66923ABEC4C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {39764FE3-C2F9-4772-9BF6-B66923ABEC4C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {39764FE3-C2F9-4772-9BF6-B66923ABEC4C}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {39764FE3-C2F9-4772-9BF6-B66923ABEC4C}.Release|Any CPU.Build.0 = Release|Any CPU
+ {FDC9151F-3544-4C68-9D05-D8E4935F1A9F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {FDC9151F-3544-4C68-9D05-D8E4935F1A9F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {FDC9151F-3544-4C68-9D05-D8E4935F1A9F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {FDC9151F-3544-4C68-9D05-D8E4935F1A9F}.Release|Any CPU.Build.0 = Release|Any CPU
+ {D73CB485-6290-4E37-B441-8068E60CBF7E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {D73CB485-6290-4E37-B441-8068E60CBF7E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D73CB485-6290-4E37-B441-8068E60CBF7E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {D73CB485-6290-4E37-B441-8068E60CBF7E}.Release|Any CPU.Build.0 = Release|Any CPU
+ {39E01A9E-C352-4B7E-96CA-612A07937470}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {39E01A9E-C352-4B7E-96CA-612A07937470}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {39E01A9E-C352-4B7E-96CA-612A07937470}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {39E01A9E-C352-4B7E-96CA-612A07937470}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(NestedProjects) = preSolution
+ {39764FE3-C2F9-4772-9BF6-B66923ABEC4C} = {FE032A91-A790-4274-A194-02E161D1F14B}
+ {FDC9151F-3544-4C68-9D05-D8E4935F1A9F} = {27886E90-E328-4AE9-86DA-1F596554D26B}
+ {D73CB485-6290-4E37-B441-8068E60CBF7E} = {FE032A91-A790-4274-A194-02E161D1F14B}
+ {39E01A9E-C352-4B7E-96CA-612A07937470} = {FE032A91-A790-4274-A194-02E161D1F14B}
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {C25E6016-F278-457B-87D6-39EC0E0A6849}
+ EndGlobalSection
+EndGlobal
diff --git a/CustomWpf/Directory.Build.props b/CustomWpf/Directory.Build.props
new file mode 100644
index 00000000000..961a10f9fc0
--- /dev/null
+++ b/CustomWpf/Directory.Build.props
@@ -0,0 +1,18 @@
+
+
+
+ latest
+ $(MSBuildThisFileDirectory)bin\$(Configuration)
+ dotnet campus(.NET 职业技术学院)
+
+ dotnet-campus
+ https://github.com/dotnet-campus/dotnetCampus.Ipc
+ https://github.com/dotnet-campus/dotnetCampus.Ipc
+ 包含定制的 WPF 版本
+
+ git
+ Copyright © 2020-2022 dotnet campus, All Rights Reserved.
+
+
+
+
diff --git a/CustomWpf/Directory.Build.targets b/CustomWpf/Directory.Build.targets
new file mode 100644
index 00000000000..faf2349bae2
--- /dev/null
+++ b/CustomWpf/Directory.Build.targets
@@ -0,0 +1,3 @@
+
+
+
diff --git a/CustomWpf/Lib/dotnetCampus.CustomWpf.Dependencies/Build/Package.targets b/CustomWpf/Lib/dotnetCampus.CustomWpf.Dependencies/Build/Package.targets
new file mode 100644
index 00000000000..c99690af8b8
--- /dev/null
+++ b/CustomWpf/Lib/dotnetCampus.CustomWpf.Dependencies/Build/Package.targets
@@ -0,0 +1,13 @@
+
+
+
+ $(RuntimeIdentifier)
+ win-x86
+
+
+
+
+
+
+
diff --git a/CustomWpf/Lib/dotnetCampus.CustomWpf.Dependencies/dotnetCampus.WPF.Dependencies.csproj b/CustomWpf/Lib/dotnetCampus.CustomWpf.Dependencies/dotnetCampus.WPF.Dependencies.csproj
new file mode 100644
index 00000000000..63906a8bab0
--- /dev/null
+++ b/CustomWpf/Lib/dotnetCampus.CustomWpf.Dependencies/dotnetCampus.WPF.Dependencies.csproj
@@ -0,0 +1,17 @@
+
+
+
+ net6.0
+
+ false
+ true
+
+
+
+
+
+
+
+
+
+
diff --git a/CustomWpf/Lib/dotnetCampus.CustomWpf.Lib/Program.cs b/CustomWpf/Lib/dotnetCampus.CustomWpf.Lib/Program.cs
new file mode 100644
index 00000000000..80ef5a775a1
--- /dev/null
+++ b/CustomWpf/Lib/dotnetCampus.CustomWpf.Lib/Program.cs
@@ -0,0 +1,19 @@
+using System;
+using System.Runtime.CompilerServices;
+using System.Windows;
+using System.Windows.Media;
+using System.Windows.Media.Composition;
+using System.Windows.Navigation;
+
+
+namespace dotnetCampus.WPF
+{
+ class Program
+ {
+ static void Main(string[] args)
+ {
+ Application application = new Application();
+ NavigationService applicationNavService = application.NavService;
+ }
+ }
+}
diff --git a/CustomWpf/Lib/dotnetCampus.CustomWpf.Lib/dotnet-campus.PublicKey.snk b/CustomWpf/Lib/dotnetCampus.CustomWpf.Lib/dotnet-campus.PublicKey.snk
new file mode 100644
index 00000000000..a21f243aa1b
Binary files /dev/null and b/CustomWpf/Lib/dotnetCampus.CustomWpf.Lib/dotnet-campus.PublicKey.snk differ
diff --git a/CustomWpf/Lib/dotnetCampus.CustomWpf.Lib/dotnet-campus.snk b/CustomWpf/Lib/dotnetCampus.CustomWpf.Lib/dotnet-campus.snk
new file mode 100644
index 00000000000..8251708e309
Binary files /dev/null and b/CustomWpf/Lib/dotnetCampus.CustomWpf.Lib/dotnet-campus.snk differ
diff --git a/CustomWpf/Lib/dotnetCampus.CustomWpf.Lib/dotnetCampus.WPF.csproj b/CustomWpf/Lib/dotnetCampus.CustomWpf.Lib/dotnetCampus.WPF.csproj
new file mode 100644
index 00000000000..b7d289f1a7e
--- /dev/null
+++ b/CustomWpf/Lib/dotnetCampus.CustomWpf.Lib/dotnetCampus.WPF.csproj
@@ -0,0 +1,22 @@
+
+
+
+ net6.0-windows
+ true
+ True
+ dotnet-campus.snk
+
+ ..\..\..\
+
+
+ $(Configuration)
+
+ Microsoft.DotNet.Wpf.GitHub.Debug
+ Microsoft.DotNet.Wpf.GitHub
+
+
+
+
+
+
+
diff --git a/CustomWpf/Lib/dotnetCampus.CustomWpf.Resource/Build/Package.props b/CustomWpf/Lib/dotnetCampus.CustomWpf.Resource/Build/Package.props
new file mode 100644
index 00000000000..f932a8463d7
--- /dev/null
+++ b/CustomWpf/Lib/dotnetCampus.CustomWpf.Resource/Build/Package.props
@@ -0,0 +1,7 @@
+
+
+ $(MSBuildThisFileDirectory)..\Assets\
+
+
+
+
diff --git a/CustomWpf/Lib/dotnetCampus.CustomWpf.Resource/dotnetCampus.WPF.Resource.csproj b/CustomWpf/Lib/dotnetCampus.CustomWpf.Resource/dotnetCampus.WPF.Resource.csproj
new file mode 100644
index 00000000000..092ccde4276
--- /dev/null
+++ b/CustomWpf/Lib/dotnetCampus.CustomWpf.Resource/dotnetCampus.WPF.Resource.csproj
@@ -0,0 +1,23 @@
+
+
+
+ net6.0
+ false
+ true
+
+ ..\..\..\
+
+
+ $(Configuration)
+
+ Microsoft.DotNet.Wpf.GitHub.Debug
+ Microsoft.DotNet.Wpf.GitHub
+
+ $(WpfRepoRoot)\artifacts\packaging\$(WpfConfig)\$(WpfOuputFolder)
+
+
+
+
+
+
+
diff --git a/CustomWpf/NuGet.config b/CustomWpf/NuGet.config
new file mode 100644
index 00000000000..f578cf96933
--- /dev/null
+++ b/CustomWpf/NuGet.config
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/CustomWpf/Packaging/dotnetCampus.WPF.NuGet/Program.cs b/CustomWpf/Packaging/dotnetCampus.WPF.NuGet/Program.cs
new file mode 100644
index 00000000000..3751555cbd3
--- /dev/null
+++ b/CustomWpf/Packaging/dotnetCampus.WPF.NuGet/Program.cs
@@ -0,0 +1,2 @@
+// See https://aka.ms/new-console-template for more information
+Console.WriteLine("Hello, World!");
diff --git a/CustomWpf/Packaging/dotnetCampus.WPF.NuGet/dotnetCampus.WPF.NuGet.csproj b/CustomWpf/Packaging/dotnetCampus.WPF.NuGet/dotnetCampus.WPF.NuGet.csproj
new file mode 100644
index 00000000000..74abf5c9766
--- /dev/null
+++ b/CustomWpf/Packaging/dotnetCampus.WPF.NuGet/dotnetCampus.WPF.NuGet.csproj
@@ -0,0 +1,10 @@
+
+
+
+ Exe
+ net6.0
+ enable
+ enable
+
+
+
diff --git a/CustomWpf/build/Version.props b/CustomWpf/build/Version.props
new file mode 100644
index 00000000000..c66636f9398
--- /dev/null
+++ b/CustomWpf/build/Version.props
@@ -0,0 +1,5 @@
+
+
+ 6.0.4-alpha01-001232332
+
+
diff --git a/src/Microsoft.DotNet.Wpf/src/Common/src/System/SR.cs b/src/Microsoft.DotNet.Wpf/src/Common/src/System/SR.cs
index 0ecaad06f94..5b2b5db760a 100644
--- a/src/Microsoft.DotNet.Wpf/src/Common/src/System/SR.cs
+++ b/src/Microsoft.DotNet.Wpf/src/Common/src/System/SR.cs
@@ -6,6 +6,8 @@
using System.Resources;
using System.Runtime.CompilerServices;
+[assembly:InternalsVisibleTo("dotnetCampus.WPF, PublicKey=0024000004800000940000000602000000240000525341310004000001000100256f5cb79140dbc25623807d6823ca4b5b602209eaaf71f064e5926a7039c24351c1e2ad3130e194631307ed36a76ad4b832e237a467fefbd693428c7ecc5d4cc26796f6f8b705311948e00f2be5fa2db52ddff50a5b3eb0acc715b45618c1a92532ae2326529fb9e0f58a44abf31e9b5701994464186d3b9f52169b6e0f80b9")]
+
#if WINDOWS_BASE
namespace MS.Internal.WindowsBase
#elif PRESENTATION_CORE