diff --git a/Directory.Build.props b/Directory.Build.props index eacb8a7cc..439fa58c6 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -6,7 +6,7 @@ - 4.0.0 + 4.0.1 4.0.0 diff --git a/Wpf.Ui.sln b/Wpf.Ui.sln index 03c890493..87b072d96 100644 --- a/Wpf.Ui.sln +++ b/Wpf.Ui.sln @@ -73,16 +73,16 @@ Global GlobalSection(ProjectConfigurationPlatforms) = postSolution {E55BFB14-9DA6-434A-8153-BFE124D71818}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {E55BFB14-9DA6-434A-8153-BFE124D71818}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E55BFB14-9DA6-434A-8153-BFE124D71818}.Debug|arm64.ActiveCfg = Debug|Any CPU - {E55BFB14-9DA6-434A-8153-BFE124D71818}.Debug|arm64.Build.0 = Debug|Any CPU + {E55BFB14-9DA6-434A-8153-BFE124D71818}.Debug|arm64.ActiveCfg = Debug|arm64 + {E55BFB14-9DA6-434A-8153-BFE124D71818}.Debug|arm64.Build.0 = Debug|arm64 {E55BFB14-9DA6-434A-8153-BFE124D71818}.Debug|x64.ActiveCfg = Debug|x64 {E55BFB14-9DA6-434A-8153-BFE124D71818}.Debug|x64.Build.0 = Debug|x64 - {E55BFB14-9DA6-434A-8153-BFE124D71818}.Debug|x86.ActiveCfg = Debug|Any CPU - {E55BFB14-9DA6-434A-8153-BFE124D71818}.Debug|x86.Build.0 = Debug|Any CPU + {E55BFB14-9DA6-434A-8153-BFE124D71818}.Debug|x86.ActiveCfg = Debug|x86 + {E55BFB14-9DA6-434A-8153-BFE124D71818}.Debug|x86.Build.0 = Debug|x86 {E55BFB14-9DA6-434A-8153-BFE124D71818}.Release|Any CPU.ActiveCfg = Release|Any CPU {E55BFB14-9DA6-434A-8153-BFE124D71818}.Release|Any CPU.Build.0 = Release|Any CPU - {E55BFB14-9DA6-434A-8153-BFE124D71818}.Release|arm64.ActiveCfg = Release|Any CPU - {E55BFB14-9DA6-434A-8153-BFE124D71818}.Release|arm64.Build.0 = Release|Any CPU + {E55BFB14-9DA6-434A-8153-BFE124D71818}.Release|arm64.ActiveCfg = Release|arm64 + {E55BFB14-9DA6-434A-8153-BFE124D71818}.Release|arm64.Build.0 = Release|arm64 {E55BFB14-9DA6-434A-8153-BFE124D71818}.Release|x64.ActiveCfg = Release|x64 {E55BFB14-9DA6-434A-8153-BFE124D71818}.Release|x64.Build.0 = Release|x64 {E55BFB14-9DA6-434A-8153-BFE124D71818}.Release|x86.ActiveCfg = Release|x86 @@ -91,42 +91,38 @@ Global {1ADC87D1-8963-4100-845A-18477824718E}.Debug|Any CPU.Build.0 = Debug|Any CPU {1ADC87D1-8963-4100-845A-18477824718E}.Debug|arm64.ActiveCfg = Debug|Any CPU {1ADC87D1-8963-4100-845A-18477824718E}.Debug|arm64.Build.0 = Debug|Any CPU - {1ADC87D1-8963-4100-845A-18477824718E}.Debug|x64.ActiveCfg = Debug|x64 - {1ADC87D1-8963-4100-845A-18477824718E}.Debug|x64.Build.0 = Debug|x64 + {1ADC87D1-8963-4100-845A-18477824718E}.Debug|x64.ActiveCfg = Debug|Any CPU + {1ADC87D1-8963-4100-845A-18477824718E}.Debug|x64.Build.0 = Debug|Any CPU {1ADC87D1-8963-4100-845A-18477824718E}.Debug|x86.ActiveCfg = Debug|Any CPU {1ADC87D1-8963-4100-845A-18477824718E}.Debug|x86.Build.0 = Debug|Any CPU {1ADC87D1-8963-4100-845A-18477824718E}.Release|Any CPU.ActiveCfg = Release|Any CPU {1ADC87D1-8963-4100-845A-18477824718E}.Release|Any CPU.Build.0 = Release|Any CPU {1ADC87D1-8963-4100-845A-18477824718E}.Release|arm64.ActiveCfg = Release|Any CPU {1ADC87D1-8963-4100-845A-18477824718E}.Release|arm64.Build.0 = Release|Any CPU - {1ADC87D1-8963-4100-845A-18477824718E}.Release|x64.ActiveCfg = Release|x64 - {1ADC87D1-8963-4100-845A-18477824718E}.Release|x64.Build.0 = Release|x64 + {1ADC87D1-8963-4100-845A-18477824718E}.Release|x64.ActiveCfg = Release|Any CPU + {1ADC87D1-8963-4100-845A-18477824718E}.Release|x64.Build.0 = Release|Any CPU {1ADC87D1-8963-4100-845A-18477824718E}.Release|x86.ActiveCfg = Release|Any CPU {1ADC87D1-8963-4100-845A-18477824718E}.Release|x86.Build.0 = Release|Any CPU {50BAB8DE-6558-4E77-87E5-CD533CBBB72F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {50BAB8DE-6558-4E77-87E5-CD533CBBB72F}.Debug|Any CPU.Build.0 = Debug|Any CPU {50BAB8DE-6558-4E77-87E5-CD533CBBB72F}.Debug|arm64.ActiveCfg = Debug|Any CPU {50BAB8DE-6558-4E77-87E5-CD533CBBB72F}.Debug|arm64.Build.0 = Debug|Any CPU - {50BAB8DE-6558-4E77-87E5-CD533CBBB72F}.Debug|x64.ActiveCfg = Debug|x64 - {50BAB8DE-6558-4E77-87E5-CD533CBBB72F}.Debug|x64.Build.0 = Debug|x64 + {50BAB8DE-6558-4E77-87E5-CD533CBBB72F}.Debug|x64.ActiveCfg = Debug|Any CPU + {50BAB8DE-6558-4E77-87E5-CD533CBBB72F}.Debug|x64.Build.0 = Debug|Any CPU {50BAB8DE-6558-4E77-87E5-CD533CBBB72F}.Debug|x86.ActiveCfg = Debug|Any CPU {50BAB8DE-6558-4E77-87E5-CD533CBBB72F}.Debug|x86.Build.0 = Debug|Any CPU {50BAB8DE-6558-4E77-87E5-CD533CBBB72F}.Release|Any CPU.ActiveCfg = Release|Any CPU {50BAB8DE-6558-4E77-87E5-CD533CBBB72F}.Release|Any CPU.Build.0 = Release|Any CPU {50BAB8DE-6558-4E77-87E5-CD533CBBB72F}.Release|arm64.ActiveCfg = Release|Any CPU {50BAB8DE-6558-4E77-87E5-CD533CBBB72F}.Release|arm64.Build.0 = Release|Any CPU - {50BAB8DE-6558-4E77-87E5-CD533CBBB72F}.Release|x64.ActiveCfg = Release|x64 - {50BAB8DE-6558-4E77-87E5-CD533CBBB72F}.Release|x64.Build.0 = Release|x64 + {50BAB8DE-6558-4E77-87E5-CD533CBBB72F}.Release|x64.ActiveCfg = Release|Any CPU + {50BAB8DE-6558-4E77-87E5-CD533CBBB72F}.Release|x64.Build.0 = Release|Any CPU {50BAB8DE-6558-4E77-87E5-CD533CBBB72F}.Release|x86.ActiveCfg = Release|Any CPU {50BAB8DE-6558-4E77-87E5-CD533CBBB72F}.Release|x86.Build.0 = Release|Any CPU {50C713C3-555E-491F-87EE-C806BEC0579F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {50C713C3-555E-491F-87EE-C806BEC0579F}.Debug|arm64.ActiveCfg = Debug|ARM64 - {50C713C3-555E-491F-87EE-C806BEC0579F}.Debug|arm64.Build.0 = Debug|ARM64 - {50C713C3-555E-491F-87EE-C806BEC0579F}.Debug|arm64.Deploy.0 = Debug|ARM64 {50C713C3-555E-491F-87EE-C806BEC0579F}.Debug|x64.ActiveCfg = Debug|x64 {50C713C3-555E-491F-87EE-C806BEC0579F}.Debug|x86.ActiveCfg = Debug|x86 - {50C713C3-555E-491F-87EE-C806BEC0579F}.Debug|x86.Build.0 = Debug|x86 - {50C713C3-555E-491F-87EE-C806BEC0579F}.Debug|x86.Deploy.0 = Debug|x86 {50C713C3-555E-491F-87EE-C806BEC0579F}.Release|Any CPU.ActiveCfg = Release|Any CPU {50C713C3-555E-491F-87EE-C806BEC0579F}.Release|arm64.ActiveCfg = Release|ARM64 {50C713C3-555E-491F-87EE-C806BEC0579F}.Release|arm64.Build.0 = Release|ARM64 @@ -141,98 +137,66 @@ Global {AE87BE68-DFDC-46D8-BC55-DC9D1DD47F4C}.Debug|Any CPU.Build.0 = Debug|Any CPU {AE87BE68-DFDC-46D8-BC55-DC9D1DD47F4C}.Debug|arm64.ActiveCfg = Debug|Any CPU {AE87BE68-DFDC-46D8-BC55-DC9D1DD47F4C}.Debug|arm64.Build.0 = Debug|Any CPU - {AE87BE68-DFDC-46D8-BC55-DC9D1DD47F4C}.Debug|x64.ActiveCfg = Debug|x64 - {AE87BE68-DFDC-46D8-BC55-DC9D1DD47F4C}.Debug|x64.Build.0 = Debug|x64 + {AE87BE68-DFDC-46D8-BC55-DC9D1DD47F4C}.Debug|x64.ActiveCfg = Debug|Any CPU + {AE87BE68-DFDC-46D8-BC55-DC9D1DD47F4C}.Debug|x64.Build.0 = Debug|Any CPU {AE87BE68-DFDC-46D8-BC55-DC9D1DD47F4C}.Debug|x86.ActiveCfg = Debug|Any CPU {AE87BE68-DFDC-46D8-BC55-DC9D1DD47F4C}.Debug|x86.Build.0 = Debug|Any CPU {AE87BE68-DFDC-46D8-BC55-DC9D1DD47F4C}.Release|Any CPU.ActiveCfg = Release|Any CPU {AE87BE68-DFDC-46D8-BC55-DC9D1DD47F4C}.Release|Any CPU.Build.0 = Release|Any CPU {AE87BE68-DFDC-46D8-BC55-DC9D1DD47F4C}.Release|arm64.ActiveCfg = Release|Any CPU {AE87BE68-DFDC-46D8-BC55-DC9D1DD47F4C}.Release|arm64.Build.0 = Release|Any CPU - {AE87BE68-DFDC-46D8-BC55-DC9D1DD47F4C}.Release|x64.ActiveCfg = Release|x64 - {AE87BE68-DFDC-46D8-BC55-DC9D1DD47F4C}.Release|x64.Build.0 = Release|x64 + {AE87BE68-DFDC-46D8-BC55-DC9D1DD47F4C}.Release|x64.ActiveCfg = Release|Any CPU + {AE87BE68-DFDC-46D8-BC55-DC9D1DD47F4C}.Release|x64.Build.0 = Release|Any CPU {AE87BE68-DFDC-46D8-BC55-DC9D1DD47F4C}.Release|x86.ActiveCfg = Release|Any CPU {AE87BE68-DFDC-46D8-BC55-DC9D1DD47F4C}.Release|x86.Build.0 = Release|Any CPU {1298D974-9D81-4A93-9374-EA6A0E723DEB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1298D974-9D81-4A93-9374-EA6A0E723DEB}.Debug|Any CPU.Build.0 = Debug|Any CPU {1298D974-9D81-4A93-9374-EA6A0E723DEB}.Debug|arm64.ActiveCfg = Debug|arm64 - {1298D974-9D81-4A93-9374-EA6A0E723DEB}.Debug|arm64.Build.0 = Debug|arm64 {1298D974-9D81-4A93-9374-EA6A0E723DEB}.Debug|x64.ActiveCfg = Debug|x64 - {1298D974-9D81-4A93-9374-EA6A0E723DEB}.Debug|x64.Build.0 = Debug|x64 {1298D974-9D81-4A93-9374-EA6A0E723DEB}.Debug|x86.ActiveCfg = Debug|x86 - {1298D974-9D81-4A93-9374-EA6A0E723DEB}.Debug|x86.Build.0 = Debug|x86 {1298D974-9D81-4A93-9374-EA6A0E723DEB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1298D974-9D81-4A93-9374-EA6A0E723DEB}.Release|Any CPU.Build.0 = Release|Any CPU {1298D974-9D81-4A93-9374-EA6A0E723DEB}.Release|arm64.ActiveCfg = Release|arm64 - {1298D974-9D81-4A93-9374-EA6A0E723DEB}.Release|arm64.Build.0 = Release|arm64 {1298D974-9D81-4A93-9374-EA6A0E723DEB}.Release|x64.ActiveCfg = Release|x64 - {1298D974-9D81-4A93-9374-EA6A0E723DEB}.Release|x64.Build.0 = Release|x64 {1298D974-9D81-4A93-9374-EA6A0E723DEB}.Release|x86.ActiveCfg = Release|x86 - {1298D974-9D81-4A93-9374-EA6A0E723DEB}.Release|x86.Build.0 = Release|x86 {4059EB00-22B3-4EF9-A509-469CE8B0096D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {4059EB00-22B3-4EF9-A509-469CE8B0096D}.Debug|Any CPU.Build.0 = Debug|Any CPU {4059EB00-22B3-4EF9-A509-469CE8B0096D}.Debug|arm64.ActiveCfg = Debug|Any CPU {4059EB00-22B3-4EF9-A509-469CE8B0096D}.Debug|arm64.Build.0 = Debug|Any CPU - {4059EB00-22B3-4EF9-A509-469CE8B0096D}.Debug|x64.ActiveCfg = Debug|x64 - {4059EB00-22B3-4EF9-A509-469CE8B0096D}.Debug|x64.Build.0 = Debug|x64 + {4059EB00-22B3-4EF9-A509-469CE8B0096D}.Debug|x64.ActiveCfg = Debug|Any CPU + {4059EB00-22B3-4EF9-A509-469CE8B0096D}.Debug|x64.Build.0 = Debug|Any CPU {4059EB00-22B3-4EF9-A509-469CE8B0096D}.Debug|x86.ActiveCfg = Debug|Any CPU {4059EB00-22B3-4EF9-A509-469CE8B0096D}.Debug|x86.Build.0 = Debug|Any CPU {4059EB00-22B3-4EF9-A509-469CE8B0096D}.Release|Any CPU.ActiveCfg = Release|Any CPU {4059EB00-22B3-4EF9-A509-469CE8B0096D}.Release|Any CPU.Build.0 = Release|Any CPU {4059EB00-22B3-4EF9-A509-469CE8B0096D}.Release|arm64.ActiveCfg = Release|Any CPU {4059EB00-22B3-4EF9-A509-469CE8B0096D}.Release|arm64.Build.0 = Release|Any CPU - {4059EB00-22B3-4EF9-A509-469CE8B0096D}.Release|x64.ActiveCfg = Release|x64 - {4059EB00-22B3-4EF9-A509-469CE8B0096D}.Release|x64.Build.0 = Release|x64 + {4059EB00-22B3-4EF9-A509-469CE8B0096D}.Release|x64.ActiveCfg = Release|Any CPU + {4059EB00-22B3-4EF9-A509-469CE8B0096D}.Release|x64.Build.0 = Release|Any CPU {4059EB00-22B3-4EF9-A509-469CE8B0096D}.Release|x86.ActiveCfg = Release|Any CPU {4059EB00-22B3-4EF9-A509-469CE8B0096D}.Release|x86.Build.0 = Release|Any CPU {14D7431C-6CFF-4191-BB88-2B8D5F323A30}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {14D7431C-6CFF-4191-BB88-2B8D5F323A30}.Debug|Any CPU.Build.0 = Debug|Any CPU {14D7431C-6CFF-4191-BB88-2B8D5F323A30}.Debug|arm64.ActiveCfg = Debug|arm64 - {14D7431C-6CFF-4191-BB88-2B8D5F323A30}.Debug|arm64.Build.0 = Debug|arm64 {14D7431C-6CFF-4191-BB88-2B8D5F323A30}.Debug|x64.ActiveCfg = Debug|x64 - {14D7431C-6CFF-4191-BB88-2B8D5F323A30}.Debug|x64.Build.0 = Debug|x64 {14D7431C-6CFF-4191-BB88-2B8D5F323A30}.Debug|x86.ActiveCfg = Debug|x86 - {14D7431C-6CFF-4191-BB88-2B8D5F323A30}.Debug|x86.Build.0 = Debug|x86 {14D7431C-6CFF-4191-BB88-2B8D5F323A30}.Release|Any CPU.ActiveCfg = Release|Any CPU - {14D7431C-6CFF-4191-BB88-2B8D5F323A30}.Release|Any CPU.Build.0 = Release|Any CPU {14D7431C-6CFF-4191-BB88-2B8D5F323A30}.Release|arm64.ActiveCfg = Release|arm64 - {14D7431C-6CFF-4191-BB88-2B8D5F323A30}.Release|arm64.Build.0 = Release|arm64 {14D7431C-6CFF-4191-BB88-2B8D5F323A30}.Release|x64.ActiveCfg = Release|x64 - {14D7431C-6CFF-4191-BB88-2B8D5F323A30}.Release|x64.Build.0 = Release|x64 {14D7431C-6CFF-4191-BB88-2B8D5F323A30}.Release|x86.ActiveCfg = Release|x86 - {14D7431C-6CFF-4191-BB88-2B8D5F323A30}.Release|x86.Build.0 = Release|x86 {AB3D44B5-9491-487E-A134-9AC5BED2B981}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {AB3D44B5-9491-487E-A134-9AC5BED2B981}.Debug|Any CPU.Build.0 = Debug|Any CPU {AB3D44B5-9491-487E-A134-9AC5BED2B981}.Debug|arm64.ActiveCfg = Debug|arm64 - {AB3D44B5-9491-487E-A134-9AC5BED2B981}.Debug|arm64.Build.0 = Debug|arm64 {AB3D44B5-9491-487E-A134-9AC5BED2B981}.Debug|x64.ActiveCfg = Debug|x64 - {AB3D44B5-9491-487E-A134-9AC5BED2B981}.Debug|x64.Build.0 = Debug|x64 {AB3D44B5-9491-487E-A134-9AC5BED2B981}.Debug|x86.ActiveCfg = Debug|x86 - {AB3D44B5-9491-487E-A134-9AC5BED2B981}.Debug|x86.Build.0 = Debug|x86 {AB3D44B5-9491-487E-A134-9AC5BED2B981}.Release|Any CPU.ActiveCfg = Release|Any CPU - {AB3D44B5-9491-487E-A134-9AC5BED2B981}.Release|Any CPU.Build.0 = Release|Any CPU {AB3D44B5-9491-487E-A134-9AC5BED2B981}.Release|arm64.ActiveCfg = Release|arm64 - {AB3D44B5-9491-487E-A134-9AC5BED2B981}.Release|arm64.Build.0 = Release|arm64 {AB3D44B5-9491-487E-A134-9AC5BED2B981}.Release|x64.ActiveCfg = Release|x64 - {AB3D44B5-9491-487E-A134-9AC5BED2B981}.Release|x64.Build.0 = Release|x64 {AB3D44B5-9491-487E-A134-9AC5BED2B981}.Release|x86.ActiveCfg = Release|x86 - {AB3D44B5-9491-487E-A134-9AC5BED2B981}.Release|x86.Build.0 = Release|x86 {4D2706B5-27A9-4542-BD4D-8C22D12D0628}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4D2706B5-27A9-4542-BD4D-8C22D12D0628}.Debug|Any CPU.Build.0 = Debug|Any CPU {4D2706B5-27A9-4542-BD4D-8C22D12D0628}.Debug|arm64.ActiveCfg = Debug|arm64 - {4D2706B5-27A9-4542-BD4D-8C22D12D0628}.Debug|arm64.Build.0 = Debug|arm64 {4D2706B5-27A9-4542-BD4D-8C22D12D0628}.Debug|x64.ActiveCfg = Debug|x64 - {4D2706B5-27A9-4542-BD4D-8C22D12D0628}.Debug|x64.Build.0 = Debug|x64 {4D2706B5-27A9-4542-BD4D-8C22D12D0628}.Debug|x86.ActiveCfg = Debug|x86 - {4D2706B5-27A9-4542-BD4D-8C22D12D0628}.Debug|x86.Build.0 = Debug|x86 {4D2706B5-27A9-4542-BD4D-8C22D12D0628}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4D2706B5-27A9-4542-BD4D-8C22D12D0628}.Release|Any CPU.Build.0 = Release|Any CPU {4D2706B5-27A9-4542-BD4D-8C22D12D0628}.Release|arm64.ActiveCfg = Release|arm64 - {4D2706B5-27A9-4542-BD4D-8C22D12D0628}.Release|arm64.Build.0 = Release|arm64 {4D2706B5-27A9-4542-BD4D-8C22D12D0628}.Release|x64.ActiveCfg = Release|x64 - {4D2706B5-27A9-4542-BD4D-8C22D12D0628}.Release|x64.Build.0 = Release|x64 {4D2706B5-27A9-4542-BD4D-8C22D12D0628}.Release|x86.ActiveCfg = Release|x86 - {4D2706B5-27A9-4542-BD4D-8C22D12D0628}.Release|x86.Build.0 = Release|x86 {3E84FE46-D3FD-4E8A-9208-95E315F16E1F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {3E84FE46-D3FD-4E8A-9208-95E315F16E1F}.Debug|Any CPU.Build.0 = Debug|Any CPU {3E84FE46-D3FD-4E8A-9208-95E315F16E1F}.Debug|arm64.ActiveCfg = Debug|Any CPU @@ -317,32 +281,32 @@ Global {5138077E-670E-413D-94D1-0825B6D1201B}.Debug|Any CPU.Build.0 = Debug|Any CPU {5138077E-670E-413D-94D1-0825B6D1201B}.Debug|arm64.ActiveCfg = Debug|Any CPU {5138077E-670E-413D-94D1-0825B6D1201B}.Debug|arm64.Build.0 = Debug|Any CPU - {5138077E-670E-413D-94D1-0825B6D1201B}.Debug|x64.ActiveCfg = Debug|x64 - {5138077E-670E-413D-94D1-0825B6D1201B}.Debug|x64.Build.0 = Debug|x64 + {5138077E-670E-413D-94D1-0825B6D1201B}.Debug|x64.ActiveCfg = Debug|Any CPU + {5138077E-670E-413D-94D1-0825B6D1201B}.Debug|x64.Build.0 = Debug|Any CPU {5138077E-670E-413D-94D1-0825B6D1201B}.Debug|x86.ActiveCfg = Debug|Any CPU {5138077E-670E-413D-94D1-0825B6D1201B}.Debug|x86.Build.0 = Debug|Any CPU {5138077E-670E-413D-94D1-0825B6D1201B}.Release|Any CPU.ActiveCfg = Release|Any CPU {5138077E-670E-413D-94D1-0825B6D1201B}.Release|Any CPU.Build.0 = Release|Any CPU {5138077E-670E-413D-94D1-0825B6D1201B}.Release|arm64.ActiveCfg = Release|Any CPU {5138077E-670E-413D-94D1-0825B6D1201B}.Release|arm64.Build.0 = Release|Any CPU - {5138077E-670E-413D-94D1-0825B6D1201B}.Release|x64.ActiveCfg = Release|x64 - {5138077E-670E-413D-94D1-0825B6D1201B}.Release|x64.Build.0 = Release|x64 + {5138077E-670E-413D-94D1-0825B6D1201B}.Release|x64.ActiveCfg = Release|Any CPU + {5138077E-670E-413D-94D1-0825B6D1201B}.Release|x64.Build.0 = Release|Any CPU {5138077E-670E-413D-94D1-0825B6D1201B}.Release|x86.ActiveCfg = Release|Any CPU {5138077E-670E-413D-94D1-0825B6D1201B}.Release|x86.Build.0 = Release|Any CPU {E37CD05A-EBFC-429D-A550-BEE44119FA9E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {E37CD05A-EBFC-429D-A550-BEE44119FA9E}.Debug|Any CPU.Build.0 = Debug|Any CPU {E37CD05A-EBFC-429D-A550-BEE44119FA9E}.Debug|arm64.ActiveCfg = Debug|Any CPU {E37CD05A-EBFC-429D-A550-BEE44119FA9E}.Debug|arm64.Build.0 = Debug|Any CPU - {E37CD05A-EBFC-429D-A550-BEE44119FA9E}.Debug|x64.ActiveCfg = Debug|x64 - {E37CD05A-EBFC-429D-A550-BEE44119FA9E}.Debug|x64.Build.0 = Debug|x64 + {E37CD05A-EBFC-429D-A550-BEE44119FA9E}.Debug|x64.ActiveCfg = Debug|Any CPU + {E37CD05A-EBFC-429D-A550-BEE44119FA9E}.Debug|x64.Build.0 = Debug|Any CPU {E37CD05A-EBFC-429D-A550-BEE44119FA9E}.Debug|x86.ActiveCfg = Debug|Any CPU {E37CD05A-EBFC-429D-A550-BEE44119FA9E}.Debug|x86.Build.0 = Debug|Any CPU {E37CD05A-EBFC-429D-A550-BEE44119FA9E}.Release|Any CPU.ActiveCfg = Release|Any CPU {E37CD05A-EBFC-429D-A550-BEE44119FA9E}.Release|Any CPU.Build.0 = Release|Any CPU {E37CD05A-EBFC-429D-A550-BEE44119FA9E}.Release|arm64.ActiveCfg = Release|Any CPU {E37CD05A-EBFC-429D-A550-BEE44119FA9E}.Release|arm64.Build.0 = Release|Any CPU - {E37CD05A-EBFC-429D-A550-BEE44119FA9E}.Release|x64.ActiveCfg = Release|x64 - {E37CD05A-EBFC-429D-A550-BEE44119FA9E}.Release|x64.Build.0 = Release|x64 + {E37CD05A-EBFC-429D-A550-BEE44119FA9E}.Release|x64.ActiveCfg = Release|Any CPU + {E37CD05A-EBFC-429D-A550-BEE44119FA9E}.Release|x64.Build.0 = Release|Any CPU {E37CD05A-EBFC-429D-A550-BEE44119FA9E}.Release|x86.ActiveCfg = Release|Any CPU {E37CD05A-EBFC-429D-A550-BEE44119FA9E}.Release|x86.Build.0 = Release|Any CPU {7F6C7E7A-A4B5-4D12-88EB-217CA59284F4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU diff --git a/docs/migration/v2-migration.md b/docs/migration/v2-migration.md new file mode 100644 index 000000000..d6a8248f7 --- /dev/null +++ b/docs/migration/v2-migration.md @@ -0,0 +1,94 @@ +# Migration plan + +This page outlines key changes and important details to consider when migrating. It highlights what’s new, what’s changed, and any steps you need to take to ensure a smooth transition. This isn’t a full step-by-step guide but a quick reference to help you navigate the most critical parts of the migration process. + +## Key changes in v2 + +### Global namespace change + +In version 2.0 the namespace has been changed from `WPF-UI` to the more .NET compatible `Wpf.Ui`. The package name has not been changed to maintain branding and consistency. + +### Navigation + +The navigation control has been rewritten yet again, making it almost completely incompatible. + +All navigation controls inherit from `Wpf.Ui.Controls.Navigation.NavigationBase` base class. + +```xml + + + + + + + + + +``` + +```xml + + + + + + + + + +``` + +```xml + + + + + + + + + +``` + +### Titlebar + +The titlebar control has been rewritten yet again, making it almost completely incompatible. diff --git a/docs/migration/v3-migration.md b/docs/migration/v3-migration.md new file mode 100644 index 000000000..82002a5c4 --- /dev/null +++ b/docs/migration/v3-migration.md @@ -0,0 +1,19 @@ +# Migration plan + +This page outlines key changes and important details to consider when migrating. It highlights what’s new, what’s changed, and any steps you need to take to ensure a smooth transition. This isn’t a full step-by-step guide but a quick reference to help you navigate the most critical parts of the migration process. + +## Navigation + +All navigation controls have been merged into one `NavigationView`, inspired by Win UI. + +## Icons + +All icons are based on the new `IconElement` control. They replaced icons in `TitleBar`, `NavigationView`, `Button` and other controls. + +## Control Gallery + +Inspired by **Win UI Controls Gallery**, a new application for testing and browsing controls was created -** WPF UI Gallery**. It replaced the Demo app. + +## Dialogs + +`ContentDialog`, `MessageBox` and `Snackbar` have been modified, their interfaces are not fully compatible. \ No newline at end of file diff --git a/docs/migration/v4-migration.md b/docs/migration/v4-migration.md new file mode 100644 index 000000000..613f1d688 --- /dev/null +++ b/docs/migration/v4-migration.md @@ -0,0 +1,45 @@ +# Migration plan + +This page outlines key changes and important details to consider when migrating. It highlights what’s new, what’s changed, and any steps you need to take to ensure a smooth transition. This isn’t a full step-by-step guide but a quick reference to help you navigate the most critical parts of the migration process. + +## Abstractions package + +Some WPF UI interfaces have been moved to a standalone package **WPF-UI.Abstractions**. You don't need to reference it, it will always be added automatically with **WPF-UI** NuGet package. + +## Navigation interfaces + +Navigation interfaces have been moved to a standalone **WPF-UI.Abstractions** package. This way, if you have models, views or other business services in another project, not related to WPF, you can develop them together for multiple applications. + +### New namespaces + +`INavigationAware` and `INavigableView` have beed moved to `Wpf.Ui.Abstractions.Controls` namespace. + +### Dependency injection based page creation + +`IPageService` have been renamed to `INavigationViewPageProvider`. + +Its default implementation is in the new **Wpf.Ui.DependencyInjection** package. You just need to use the `services.AddNavigationViewPageProvider()` extension and then indicate in the navigation that you want to use this interface. Then `NavigationView` will use DI container for pages creation. + +**Program.cs** +```csharp +var builder = Host.CreateDefaultBuilder(); +builder.Services.AddNavigationViewPageProvider(); +``` + +**MyWindow.xaml.cs** +```csharp +var pageProvider = serviceProvider.GetRequiredService(); + +// NavigationControl is x:Name of our NavigationView defined in XAML. +NavigationControl.SetPageProviderService(pageProvider) +``` + +### Navigation service + +The `INavigationService` defined in the main package (**WPF-UI**) makes navigation management easy. You can use it for convenient injection between view models. We **HIGHLY** recommend it to be Singleton. + +```csharp +var builder = Host.CreateDefaultBuilder(); +builder.Services.AddNavigationViewPageProvider(); +builder.Services.AddSingleton(); +``` diff --git a/docs/toc.yml b/docs/toc.yml index 61f9348b2..3cc694620 100644 --- a/docs/toc.yml +++ b/docs/toc.yml @@ -28,5 +28,14 @@ items: href: documentation/releases.md - name: API v4.0 href: api/ + - name: Migration + href: /migration + items: + - name: Key changes in v4 + href: migration/v4-migration.md + - name: Key changes in v3 + href: migration/v3-migration.md + - name: Key changes in v2 + href: migration/v2-migration.md - name: Support plans href: https://lepo.co/support diff --git a/samples/Wpf.Ui.Demo.Dialogs/Wpf.Ui.Demo.Dialogs.csproj b/samples/Wpf.Ui.Demo.Dialogs/Wpf.Ui.Demo.Dialogs.csproj index 325164a23..7b88443d7 100644 --- a/samples/Wpf.Ui.Demo.Dialogs/Wpf.Ui.Demo.Dialogs.csproj +++ b/samples/Wpf.Ui.Demo.Dialogs/Wpf.Ui.Demo.Dialogs.csproj @@ -2,12 +2,11 @@ WinExe - net8.0-windows10.0.22621.0 + net9.0-windows10.0.26100.0 10.0.17763.0 true app.manifest applicationIcon.ico - AnyCPU;x64 $(NoWarn);SA1601 diff --git a/samples/Wpf.Ui.Demo.Mvvm/Wpf.Ui.Demo.Mvvm.csproj b/samples/Wpf.Ui.Demo.Mvvm/Wpf.Ui.Demo.Mvvm.csproj index 7e24cbdd1..1667d2fd2 100644 --- a/samples/Wpf.Ui.Demo.Mvvm/Wpf.Ui.Demo.Mvvm.csproj +++ b/samples/Wpf.Ui.Demo.Mvvm/Wpf.Ui.Demo.Mvvm.csproj @@ -2,12 +2,11 @@ WinExe - net8.0-windows10.0.22621.0 + net9.0-windows10.0.26100.0 10.0.17763.0 true app.manifest applicationIcon.ico - AnyCPU;x64 $(NoWarn);SA1601 diff --git a/samples/Wpf.Ui.Demo.Simple/Wpf.Ui.Demo.Simple.csproj b/samples/Wpf.Ui.Demo.Simple/Wpf.Ui.Demo.Simple.csproj index ea1f29ef8..b57a6eb5c 100644 --- a/samples/Wpf.Ui.Demo.Simple/Wpf.Ui.Demo.Simple.csproj +++ b/samples/Wpf.Ui.Demo.Simple/Wpf.Ui.Demo.Simple.csproj @@ -2,12 +2,11 @@ WinExe - net8.0-windows10.0.22621.0 + net9.0-windows10.0.26100.0 10.0.17763.0 true app.manifest applicationIcon.ico - AnyCPU;x64 $(NoWarn);SA1601 diff --git a/src/Wpf.Ui.Extension.Template.Blank/Wpf.Ui.Blank.csproj b/src/Wpf.Ui.Extension.Template.Blank/Wpf.Ui.Blank.csproj index 843153ed8..3b3d1266c 100644 --- a/src/Wpf.Ui.Extension.Template.Blank/Wpf.Ui.Blank.csproj +++ b/src/Wpf.Ui.Extension.Template.Blank/Wpf.Ui.Blank.csproj @@ -15,7 +15,8 @@ - + + diff --git a/src/Wpf.Ui.Extension.Template.Compact/Wpf.Ui.Compact.csproj b/src/Wpf.Ui.Extension.Template.Compact/Wpf.Ui.Compact.csproj index a5785e118..3b3d1266c 100644 --- a/src/Wpf.Ui.Extension.Template.Compact/Wpf.Ui.Compact.csproj +++ b/src/Wpf.Ui.Extension.Template.Compact/Wpf.Ui.Compact.csproj @@ -15,8 +15,8 @@ - - + + diff --git a/src/Wpf.Ui.Extension.Template.Fluent/Wpf.Ui.Fluent.csproj b/src/Wpf.Ui.Extension.Template.Fluent/Wpf.Ui.Fluent.csproj index a5785e118..3b3d1266c 100644 --- a/src/Wpf.Ui.Extension.Template.Fluent/Wpf.Ui.Fluent.csproj +++ b/src/Wpf.Ui.Extension.Template.Fluent/Wpf.Ui.Fluent.csproj @@ -15,8 +15,8 @@ - - + + diff --git a/src/Wpf.Ui.Gallery.Package/Wpf.Ui.Gallery.Package.wapproj b/src/Wpf.Ui.Gallery.Package/Wpf.Ui.Gallery.Package.wapproj index aa72c787b..a17ba6af7 100644 --- a/src/Wpf.Ui.Gallery.Package/Wpf.Ui.Gallery.Package.wapproj +++ b/src/Wpf.Ui.Gallery.Package/Wpf.Ui.Gallery.Package.wapproj @@ -20,21 +20,13 @@ Release x64 - + Debug - ARM + arm64 - + Release - ARM - - - Debug - ARM64 - - - Release - ARM64 + arm64 Debug @@ -51,18 +43,37 @@ 50c713c3-555e-491f-87ee-c806bec0579f - 10.0.22621.0 - 10.0.14393.0 + 10.0.26100.0 + 10.0.18362.0 en-US false $(NoWarn);NU1701;NU1702 ..\Wpf.Ui.Gallery\Wpf.Ui.Gallery.csproj True False - True + False True - x86 + x86|x64|arm64 0 + SHA256 + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always diff --git a/src/Wpf.Ui.Gallery/Controllers/MonacoController.cs b/src/Wpf.Ui.Gallery/Controllers/MonacoController.cs index 9283f5c26..ecd8de677 100644 --- a/src/Wpf.Ui.Gallery/Controllers/MonacoController.cs +++ b/src/Wpf.Ui.Gallery/Controllers/MonacoController.cs @@ -75,6 +75,8 @@ public void DispatchScript(string script) return; } - _ = Application.Current.Dispatcher.InvokeAsync(async () => await _webView!.ExecuteScriptAsync(script)); + _ = Application.Current.Dispatcher.InvokeAsync( + async () => await _webView!.ExecuteScriptAsync(script) + ); } } diff --git a/src/Wpf.Ui.Gallery/Controls/GalleryNavigationPresenter.xaml b/src/Wpf.Ui.Gallery/Controls/GalleryNavigationPresenter.xaml index 11731a532..2600b11c4 100644 --- a/src/Wpf.Ui.Gallery/Controls/GalleryNavigationPresenter.xaml +++ b/src/Wpf.Ui.Gallery/Controls/GalleryNavigationPresenter.xaml @@ -38,17 +38,17 @@ + TextWrapping="Wrap" /> + TextWrapping="Wrap" /> diff --git a/src/Wpf.Ui.Gallery/Wpf.Ui.Gallery.csproj b/src/Wpf.Ui.Gallery/Wpf.Ui.Gallery.csproj index 68ecff1ff..6ecc4de7a 100644 --- a/src/Wpf.Ui.Gallery/Wpf.Ui.Gallery.csproj +++ b/src/Wpf.Ui.Gallery/Wpf.Ui.Gallery.csproj @@ -1,9 +1,9 @@ - + Wpf.Ui.Gallery WinExe - net9.0-windows10.0.22621.0 + net9.0-windows10.0.26100.0 10.0.18362.0 true true @@ -11,6 +11,7 @@ app.manifest $(NoWarn);SA1601 True + AnyCPU;x86;x64;arm64 diff --git a/src/Wpf.Ui/Controls/Arc/Arc.cs b/src/Wpf.Ui/Controls/Arc/Arc.cs index e3bd1caf1..4c5cedbc0 100644 --- a/src/Wpf.Ui/Controls/Arc/Arc.cs +++ b/src/Wpf.Ui/Controls/Arc/Arc.cs @@ -57,7 +57,8 @@ static Arc() // Modify the metadata of the StrokeStartLineCap dependency property. StrokeStartLineCapProperty.OverrideMetadata( typeof(Arc), - new PropertyMetadata(PenLineCap.Round, PropertyChangedCallback)); + new PropertyMetadata(PenLineCap.Round, PropertyChangedCallback) + ); } /// diff --git a/src/Wpf.Ui/Controls/VirtualizingWrapPanel/VirtualizingWrapPanel.cs b/src/Wpf.Ui/Controls/VirtualizingWrapPanel/VirtualizingWrapPanel.cs index 3392e2dee..1a58d4723 100644 --- a/src/Wpf.Ui/Controls/VirtualizingWrapPanel/VirtualizingWrapPanel.cs +++ b/src/Wpf.Ui/Controls/VirtualizingWrapPanel/VirtualizingWrapPanel.cs @@ -425,8 +425,10 @@ protected override ItemRange UpdateItemRange() int rowCountInCacheBefore = (int)(cacheBeforeInPixel / GetHeight(ChildSize)); int rowCountInCacheAfter = ( - (int)Math.Ceiling( - (offsetInPixel + viewportHeight + cacheAfterInPixel) / GetHeight(ChildSize)) + (int) + Math.Ceiling( + (offsetInPixel + viewportHeight + cacheAfterInPixel) / GetHeight(ChildSize) + ) ) - (int)Math.Ceiling((offsetInPixel + viewportHeight) / GetHeight(ChildSize)); startIndex = Math.Max(startIndex - (rowCountInCacheBefore * ItemsPerRowCount), 0); diff --git a/src/Wpf.Ui/Interop/UnsafeNativeMethods.cs b/src/Wpf.Ui/Interop/UnsafeNativeMethods.cs index 16239fe5c..be8c6f217 100644 --- a/src/Wpf.Ui/Interop/UnsafeNativeMethods.cs +++ b/src/Wpf.Ui/Interop/UnsafeNativeMethods.cs @@ -376,9 +376,7 @@ public static Color GetDwmColor() return Color.FromArgb(255, values[2], values[1], values[0]); } - catch - { - } + catch { } } } diff --git a/src/Wpf.Ui/Markup/Design.cs b/src/Wpf.Ui/Markup/Design.cs index 0be96b654..9521d6f0e 100644 --- a/src/Wpf.Ui/Markup/Design.cs +++ b/src/Wpf.Ui/Markup/Design.cs @@ -29,10 +29,12 @@ public static class Design /// private static bool InDesignMode => _inDesignMode ??= - (bool)DependencyPropertyDescriptor - .FromProperty(DesignerProperties.IsInDesignModeProperty, typeof(FrameworkElement)) - .Metadata.DefaultValue - || System.Diagnostics.Process.GetCurrentProcess() + (bool) + DependencyPropertyDescriptor + .FromProperty(DesignerProperties.IsInDesignModeProperty, typeof(FrameworkElement)) + .Metadata.DefaultValue + || System + .Diagnostics.Process.GetCurrentProcess() .ProcessName.StartsWith(DesignProcessName, StringComparison.Ordinal); public static readonly DependencyProperty BackgroundProperty = DependencyProperty.RegisterAttached( diff --git a/src/Wpf.Ui/UiApplication.cs b/src/Wpf.Ui/UiApplication.cs index abd57e07e..43b1e92f2 100644 --- a/src/Wpf.Ui/UiApplication.cs +++ b/src/Wpf.Ui/UiApplication.cs @@ -95,14 +95,11 @@ public ResourceDictionary Resources _resources.MergedDictionaries.Add(themesDictionary); _resources.MergedDictionaries.Add(controlsDictionary); } - catch - { - } + catch { } } return _application?.Resources ?? _resources; } - set { if (_application is not null) diff --git a/tests/Wpf.Ui.Gallery.UnitTests/Wpf.Ui.Gallery.UnitTests.csproj b/tests/Wpf.Ui.Gallery.UnitTests/Wpf.Ui.Gallery.UnitTests.csproj index d0047db9f..e251be850 100644 --- a/tests/Wpf.Ui.Gallery.UnitTests/Wpf.Ui.Gallery.UnitTests.csproj +++ b/tests/Wpf.Ui.Gallery.UnitTests/Wpf.Ui.Gallery.UnitTests.csproj @@ -1,7 +1,7 @@ - net9.0-windows10.0.22621.0 + net9.0-windows10.0.26100.0 false