From c162d32f4dc6cd79efeba74ede1fb56a6f3c4e44 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=BE=89=E9=B8=AD=E8=9B=8B?= Date: Tue, 24 Feb 2026 15:05:15 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E5=9C=B0=E5=9B=BE=E9=81=AE=E7=BD=A9):=20?= =?UTF-8?q?=E4=BF=AE=E5=A4=8DDPI=E8=AE=A1=E7=AE=97=E5=8F=A5=E6=9F=84?= =?UTF-8?q?=E9=80=89=E6=8B=A9=E4=B8=8E=E5=B0=8F=E5=9C=B0=E5=9B=BE=E9=81=AE?= =?UTF-8?q?=E7=BD=A9=E9=BB=98=E8=AE=A4=E7=A6=81=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修复DPI计算时未正确使用游戏窗口句柄的问题,改为优先使用游戏窗口句柄 将小地图遮罩和自动记录路径功能默认禁用,避免启动时误显示 在设置页面为地图遮罩功能添加展开面板,并包含小地图遮罩开关 --- .../GameTask/MapMask/MapMaskConfig.cs | 4 +- BetterGenshinImpact/Helpers/DpiHelper.cs | 12 ++++- BetterGenshinImpact/View/MaskWindow.xaml | 1 + .../View/Pages/TriggerSettingsPage.xaml | 49 ++++++++++++++++--- 4 files changed, 56 insertions(+), 10 deletions(-) diff --git a/BetterGenshinImpact/GameTask/MapMask/MapMaskConfig.cs b/BetterGenshinImpact/GameTask/MapMask/MapMaskConfig.cs index 28708cb1..4f9cc640 100644 --- a/BetterGenshinImpact/GameTask/MapMask/MapMaskConfig.cs +++ b/BetterGenshinImpact/GameTask/MapMask/MapMaskConfig.cs @@ -20,13 +20,13 @@ public partial class MapMaskConfig : ObservableObject /// 小地图遮罩是否启用 /// [ObservableProperty] - private bool _miniMapMaskEnabled = true; + private bool _miniMapMaskEnabled = false; /// /// 自动记录路径功能是否启用 /// [ObservableProperty] - private bool _pathAutoRecordEnabled = true; + private bool _pathAutoRecordEnabled = false; private MapPointApiProvider _mapPointApiProvider = MapPointApiProvider.MihoyoMap; diff --git a/BetterGenshinImpact/Helpers/DpiHelper.cs b/BetterGenshinImpact/Helpers/DpiHelper.cs index 7abd2afb..58226bf7 100644 --- a/BetterGenshinImpact/Helpers/DpiHelper.cs +++ b/BetterGenshinImpact/Helpers/DpiHelper.cs @@ -2,6 +2,7 @@ using System.Diagnostics; using System.Windows; using System.Windows.Interop; +using BetterGenshinImpact.GameTask; using Vanara.PInvoke; namespace BetterGenshinImpact.Helpers; @@ -18,7 +19,16 @@ public class DpiHelper if (Environment.OSVersion.Version >= new Version(6, 3) && UIDispatcherHelper.MainWindow != null) { - HWND hWnd = new WindowInteropHelper(Application.Current?.MainWindow).Handle; + HWND hWnd = HWND.NULL; + if (TaskContext.Instance().IsInitialized) + { + hWnd = TaskContext.Instance().GameHandle; + } + else + { + hWnd = new WindowInteropHelper(Application.Current?.MainWindow).Handle; + } + HMONITOR hMonitor = User32.MonitorFromWindow(hWnd, User32.MonitorFlags.MONITOR_DEFAULTTONEAREST); SHCore.GetDpiForMonitor(hMonitor, SHCore.MONITOR_DPI_TYPE.MDT_EFFECTIVE_DPI, out _, out uint dpiY); return dpiY / 96f; diff --git a/BetterGenshinImpact/View/MaskWindow.xaml b/BetterGenshinImpact/View/MaskWindow.xaml index ebff0b96..c1d9b363 100644 --- a/BetterGenshinImpact/View/MaskWindow.xaml +++ b/BetterGenshinImpact/View/MaskWindow.xaml @@ -87,6 +87,7 @@ Grid.ColumnSpan="6" ClipToBounds="True"> diff --git a/BetterGenshinImpact/View/Pages/TriggerSettingsPage.xaml b/BetterGenshinImpact/View/Pages/TriggerSettingsPage.xaml index 172fad45..4b2b6ba5 100644 --- a/BetterGenshinImpact/View/Pages/TriggerSettingsPage.xaml +++ b/BetterGenshinImpact/View/Pages/TriggerSettingsPage.xaml @@ -975,16 +975,20 @@ - - + + - - + + + + + + 在遮罩窗口中显示大地图位置与标点信息 + - - - + + + + + + + + + + + + + + + + +