From 7caeb177887eaeb8c2ffe75f5d5f928c610a3a19 Mon Sep 17 00:00:00 2001 From: Lightczx <1686188646@qq.com> Date: Tue, 17 Oct 2023 14:51:41 +0800 Subject: [PATCH] use reference in picker factory --- src/Snap.Hutao/Snap.Hutao/Factory/PickerFactory.cs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/Snap.Hutao/Snap.Hutao/Factory/PickerFactory.cs b/src/Snap.Hutao/Snap.Hutao/Factory/PickerFactory.cs index 79c37cbc..bd177eb6 100644 --- a/src/Snap.Hutao/Snap.Hutao/Factory/PickerFactory.cs +++ b/src/Snap.Hutao/Snap.Hutao/Factory/PickerFactory.cs @@ -2,6 +2,8 @@ // Licensed under the MIT license. using Snap.Hutao.Core; +using Snap.Hutao.Core.LifeCycle; +using Snap.Hutao.Core.Windowing; using Snap.Hutao.Factory.Abstraction; using Windows.Storage.Pickers; using WinRT.Interop; @@ -16,7 +18,7 @@ internal sealed partial class PickerFactory : IPickerFactory { private const string AnyType = "*"; - private readonly MainWindow mainWindow; + private readonly ICurrentWindowReference currentWindow; /// public FileOpenPicker GetFileOpenPicker(PickerLocationId location, string commitButton, params string[] fileTypes) @@ -78,7 +80,10 @@ internal sealed partial class PickerFactory : IPickerFactory { // Create a folder picker. T picker = new(); - InitializeWithWindow.Initialize(picker, mainWindow.WindowOptions.Hwnd); + if (currentWindow.Window is IWindowOptionsSource optionsSource) + { + InitializeWithWindow.Initialize(picker, optionsSource.WindowOptions.Hwnd); + } return picker; }