From e53100de133f84e75a686a6be363c51877cb60e1 Mon Sep 17 00:00:00 2001 From: Dan Clark Date: Sun, 3 Nov 2024 14:12:29 +0000 Subject: [PATCH 1/2] Add WinUIDispatcher --- Toolkit.WinUI/IServiceCollectionExtensions.cs | 13 ++++++++----- Toolkit.WinUI/WinUIDispatcher.cs | 14 ++++++++++++++ 2 files changed, 22 insertions(+), 5 deletions(-) create mode 100644 Toolkit.WinUI/WinUIDispatcher.cs diff --git a/Toolkit.WinUI/IServiceCollectionExtensions.cs b/Toolkit.WinUI/IServiceCollectionExtensions.cs index c2c64e7..6f83ef8 100644 --- a/Toolkit.WinUI/IServiceCollectionExtensions.cs +++ b/Toolkit.WinUI/IServiceCollectionExtensions.cs @@ -1,9 +1,4 @@ using Microsoft.Extensions.DependencyInjection; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; using Toolkit.Foundation; namespace Toolkit.WinUI; @@ -12,7 +7,15 @@ public static class IServiceCollectionExtensions { public static IServiceCollection AddWinUI(this IServiceCollection services) { + services.AddTransient(); services.AddTransient(); + + services.AddTransient((Func>)(provider => + new ProxyServiceCollection(services => + { + + }))); + return services; } } diff --git a/Toolkit.WinUI/WinUIDispatcher.cs b/Toolkit.WinUI/WinUIDispatcher.cs new file mode 100644 index 0000000..7ae5f17 --- /dev/null +++ b/Toolkit.WinUI/WinUIDispatcher.cs @@ -0,0 +1,14 @@ +using Microsoft.UI.Dispatching; +using Toolkit.Foundation; + +namespace Toolkit.WinUI; + +public class WinUIDispatcher : + IDispatcher +{ + public Task Invoke(Action action) + { + DispatcherQueue.GetForCurrentThread().TryEnqueue(action.Invoke); + return Task.CompletedTask; + } +} From 9a566f33fdd5eb1821379e0880724c550b393337 Mon Sep 17 00:00:00 2001 From: Dan Clark Date: Sun, 3 Nov 2024 18:28:44 +0000 Subject: [PATCH 2/2] Added WindowStyle --- Toolkit.UI.WinUI/Toolkit.UI.WinUI.csproj | 21 ++++++++++++++++++++ Toolkit.UI.WinUI/WindowExtensions.cs | 25 ++++++++++++++++++++++++ Toolkit.UI.WinUI/WindowStyle.cs | 9 +++++++++ Toolkit.sln | 14 +++++++++++++ 4 files changed, 69 insertions(+) create mode 100644 Toolkit.UI.WinUI/Toolkit.UI.WinUI.csproj create mode 100644 Toolkit.UI.WinUI/WindowExtensions.cs create mode 100644 Toolkit.UI.WinUI/WindowStyle.cs diff --git a/Toolkit.UI.WinUI/Toolkit.UI.WinUI.csproj b/Toolkit.UI.WinUI/Toolkit.UI.WinUI.csproj new file mode 100644 index 0000000..fea5908 --- /dev/null +++ b/Toolkit.UI.WinUI/Toolkit.UI.WinUI.csproj @@ -0,0 +1,21 @@ + + + net9.0-windows10.0.19041.0 + 10.0.17763.0 + Toolkit.UI.WinUI + + win-x86;win-x64;win-arm64 + + + win10-x86;win10-x64;win10-arm64 + + true + 10.0.19041.41 + + + + + + + + diff --git a/Toolkit.UI.WinUI/WindowExtensions.cs b/Toolkit.UI.WinUI/WindowExtensions.cs new file mode 100644 index 0000000..43431fc --- /dev/null +++ b/Toolkit.UI.WinUI/WindowExtensions.cs @@ -0,0 +1,25 @@ +using Microsoft.UI.Xaml; +using WinUIEx; + +namespace Toolkit.UI.WinUI; + +public static partial class WindowExtensions +{ + public static void SetWindowStyle(this Window window, + WindowStyle style) + { + WinUIEx.WindowStyle windowStyle = window.GetWindowStyle(); + + switch (style) + { + case WindowStyle.None: + windowStyle &= ~(WinUIEx.WindowStyle.Caption | + WinUIEx.WindowStyle.ThickFrame | + WinUIEx.WindowStyle.Border | + WinUIEx.WindowStyle.SysMenu); + break; + } + + window.SetWindowStyle(windowStyle); + } +} \ No newline at end of file diff --git a/Toolkit.UI.WinUI/WindowStyle.cs b/Toolkit.UI.WinUI/WindowStyle.cs new file mode 100644 index 0000000..a3792ed --- /dev/null +++ b/Toolkit.UI.WinUI/WindowStyle.cs @@ -0,0 +1,9 @@ +namespace Toolkit.UI.WinUI; + +public enum WindowStyle +{ + None, + SingleBorderWindow, + ThreeDBorderWindow, + ToolWindow +} \ No newline at end of file diff --git a/Toolkit.sln b/Toolkit.sln index 8126778..9283356 100644 --- a/Toolkit.sln +++ b/Toolkit.sln @@ -15,6 +15,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Toolkit.Windows", "Toolkit. EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Toolkit.WinUI", "Toolkit.WinUI\Toolkit.WinUI.csproj", "{D90BFF29-B38C-432E-849A-28C5A88A6DDD}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Toolkit.UI.WinUI", "Toolkit.UI.WinUI\Toolkit.UI.WinUI.csproj", "{13C89DC0-5B75-4368-930D-D156B06E3F6A}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -97,6 +99,18 @@ Global {D90BFF29-B38C-432E-849A-28C5A88A6DDD}.Release|x64.Build.0 = Release|Any CPU {D90BFF29-B38C-432E-849A-28C5A88A6DDD}.Release|x86.ActiveCfg = Release|Any CPU {D90BFF29-B38C-432E-849A-28C5A88A6DDD}.Release|x86.Build.0 = Release|Any CPU + {13C89DC0-5B75-4368-930D-D156B06E3F6A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {13C89DC0-5B75-4368-930D-D156B06E3F6A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {13C89DC0-5B75-4368-930D-D156B06E3F6A}.Debug|x64.ActiveCfg = Debug|Any CPU + {13C89DC0-5B75-4368-930D-D156B06E3F6A}.Debug|x64.Build.0 = Debug|Any CPU + {13C89DC0-5B75-4368-930D-D156B06E3F6A}.Debug|x86.ActiveCfg = Debug|Any CPU + {13C89DC0-5B75-4368-930D-D156B06E3F6A}.Debug|x86.Build.0 = Debug|Any CPU + {13C89DC0-5B75-4368-930D-D156B06E3F6A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {13C89DC0-5B75-4368-930D-D156B06E3F6A}.Release|Any CPU.Build.0 = Release|Any CPU + {13C89DC0-5B75-4368-930D-D156B06E3F6A}.Release|x64.ActiveCfg = Release|Any CPU + {13C89DC0-5B75-4368-930D-D156B06E3F6A}.Release|x64.Build.0 = Release|Any CPU + {13C89DC0-5B75-4368-930D-D156B06E3F6A}.Release|x86.ActiveCfg = Release|Any CPU + {13C89DC0-5B75-4368-930D-D156B06E3F6A}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE