From 748487031d4f8a8ef1f1738a729854bcfae8cb32 Mon Sep 17 00:00:00 2001 From: Dan Clark Date: Mon, 18 Nov 2024 22:20:25 +0000 Subject: [PATCH] No FrameHandler in WinUI for now... its too complex and broken --- Toolkit.Foundation/ObservableCollection.cs | 2 ++ Toolkit.UI.WinUI/WindowExtensions.cs | 14 +++++++++++++- Toolkit.WinUI/ContentTemplate.cs | 10 ++++++---- Toolkit.WinUI/PageControl.cs | 9 --------- Toolkit.WinUI/TemplatePage.xaml | 5 +++++ Toolkit.WinUI/TemplatePage.xaml.cs | 8 ++++++++ Toolkit.WinUI/Toolkit.WinUI.csproj | 10 ++++++++++ 7 files changed, 44 insertions(+), 14 deletions(-) delete mode 100644 Toolkit.WinUI/PageControl.cs create mode 100644 Toolkit.WinUI/TemplatePage.xaml create mode 100644 Toolkit.WinUI/TemplatePage.xaml.cs diff --git a/Toolkit.Foundation/ObservableCollection.cs b/Toolkit.Foundation/ObservableCollection.cs index d39678b..1e82901 100644 --- a/Toolkit.Foundation/ObservableCollection.cs +++ b/Toolkit.Foundation/ObservableCollection.cs @@ -181,6 +181,8 @@ public partial class ObservableCollection : Add(item); } + + SelectedItem = this.FirstOrDefault(); } public void Clear(bool disposeItems = false) diff --git a/Toolkit.UI.WinUI/WindowExtensions.cs b/Toolkit.UI.WinUI/WindowExtensions.cs index 21993d6..f715474 100644 --- a/Toolkit.UI.WinUI/WindowExtensions.cs +++ b/Toolkit.UI.WinUI/WindowExtensions.cs @@ -10,6 +10,7 @@ using Windows.Win32.UI.WindowsAndMessaging; using Toolkit.Windows; using Rect = Windows.Foundation.Rect; using WinUIEx; +using Windows.Graphics; namespace Toolkit.UI.WinUI; @@ -34,6 +35,17 @@ public static partial class WindowExtensions } } + public static void SetSize(this Window window, + int width, + int height) + { + nint handle = WindowNative.GetWindowHandle(window); + if (handle == 0) return; + + float value = PInvoke.GetDpiForWindow(new HWND(handle)) / 96f; + window.AppWindow.Resize(new SizeInt32((int)(width * (double)value), (int)(height * (double)value))); + } + public static void MoveAndResize(this Window window, Rect rect) { @@ -48,7 +60,7 @@ public static partial class WindowExtensions } public static void SetBorderless(this Window window, - bool value) + bool value) { WindowStyle windowStyle = window.GetWindowStyle(); diff --git a/Toolkit.WinUI/ContentTemplate.cs b/Toolkit.WinUI/ContentTemplate.cs index 36212c5..623e03b 100644 --- a/Toolkit.WinUI/ContentTemplate.cs +++ b/Toolkit.WinUI/ContentTemplate.cs @@ -29,15 +29,17 @@ public class ContentTemplate : } protected override DataTemplate? SelectTemplateCore(object item, - DependencyObject container) => SelectTemplateCore(item); + DependencyObject container) + { + return SelectTemplateCore(item); + } private static DataTemplate CreateDataTemplate(IContentTemplateDescriptor descriptor) { string xamlString = @$" - + xmlns:ui=""using:{descriptor.TemplateType.Namespace}""> + "; return (DataTemplate)XamlReader.Load(xamlString); diff --git a/Toolkit.WinUI/PageControl.cs b/Toolkit.WinUI/PageControl.cs deleted file mode 100644 index a44d678..0000000 --- a/Toolkit.WinUI/PageControl.cs +++ /dev/null @@ -1,9 +0,0 @@ -using Microsoft.UI.Xaml.Controls; - -namespace Toolkit.WinUI; - -public class PageControl : - Page -{ - -} diff --git a/Toolkit.WinUI/TemplatePage.xaml b/Toolkit.WinUI/TemplatePage.xaml new file mode 100644 index 0000000..bc45d12 --- /dev/null +++ b/Toolkit.WinUI/TemplatePage.xaml @@ -0,0 +1,5 @@ + + diff --git a/Toolkit.WinUI/TemplatePage.xaml.cs b/Toolkit.WinUI/TemplatePage.xaml.cs new file mode 100644 index 0000000..a02f54d --- /dev/null +++ b/Toolkit.WinUI/TemplatePage.xaml.cs @@ -0,0 +1,8 @@ +using Microsoft.UI.Xaml.Controls; + +namespace Toolkit.WinUI; + +public sealed partial class TemplatePage : Page +{ + public TemplatePage() => InitializeComponent(); +} diff --git a/Toolkit.WinUI/Toolkit.WinUI.csproj b/Toolkit.WinUI/Toolkit.WinUI.csproj index 4844a14..26548d0 100644 --- a/Toolkit.WinUI/Toolkit.WinUI.csproj +++ b/Toolkit.WinUI/Toolkit.WinUI.csproj @@ -15,6 +15,10 @@ true 10.0.19041.41 + + + + @@ -24,5 +28,11 @@ + + + + MSBuild:Compile + +