返回提交历史
Modified
XFEToolBox/Views/Windows/TrayMenuWindow.xaml
+5
-2
Modified
XFEToolBox/Views/Windows/TrayMenuWindow.xaml.cs
+5
-1
Modified
XFEToolBox/XFEToolBox.Client.csproj
+1
-0
Added
XFEToolBox/app.manifest
+23
-0
XFEstudio/XFEToolBox
提升托盘菜单窗口渲染质量与DPI兼容性
- TrayMenuWindow.xaml 增加渲染与文本优化属性,调整窗口高度与按钮布局 - TrayMenuWindow.xaml.cs 优化 ShowAtCursor 方法,确保多屏高DPI下窗口定位与显示效果 - XFEToolBox.Client.csproj 指定应用程序清单文件 - 新增 app.manifest,声明权限、DPI 感知、兼容系统与长路径支持
ac06e9e
代码差异
4 个文件
+34
-3
@@ -1,9 +1,12 @@
1
1
<Window x:Class="XFEToolBox.Client.Views.Windows.TrayMenuWindow"
2
2
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
3
3
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
4
Width="246" Height="232" WindowStyle="None" AllowsTransparency="True"
4
Width="246" Height="258" WindowStyle="None" AllowsTransparency="True"
5
5
Background="Transparent" ShowInTaskbar="False" Topmost="True"
6
6
ResizeMode="NoResize" WindowStartupLocation="Manual"
7
UseLayoutRounding="True" SnapsToDevicePixels="True"
8
TextOptions.TextFormattingMode="Display" TextOptions.TextHintingMode="Fixed"
9
RenderOptions.BitmapScalingMode="HighQuality"
7
10
Deactivated="Window_Deactivated" PreviewKeyDown="Window_PreviewKeyDown">
8
11
<Window.Resources>
9
12
<Style x:Key="TrayActionButtonStyle" TargetType="Button">
@@ -80,7 +83,7 @@
80
83
</Grid>
81
84
</Button>
82
85
<Border Height="1" Margin="10,4" Background="#E5E5F1"/>
83
<Button Style="{StaticResource TrayActionButtonStyle}" Click="ExitButton_Click">
86
<Button Style="{StaticResource TrayActionButtonStyle}" Margin="0,2,0,8" Click="ExitButton_Click">
84
87
<Grid>
85
88
<Grid.ColumnDefinitions><ColumnDefinition Width="31"/><ColumnDefinition Width="*"/></Grid.ColumnDefinitions>
86
89
<TextBlock Text="×" Foreground="#D26F82" FontSize="19" VerticalAlignment="Center"/>
@@ -22,9 +22,13 @@ public partial class TrayMenuWindow : Window
22
22
23
23
public void ShowAtCursor()
24
24
{
25
// 先把尚未显示的 HWND 移到鼠标所在显示器,确保 WPF 按目标屏幕 DPI
26
// 完成首次布局,避免从主屏移动后被 Windows 进行位图拉伸。
27
PositionNearCursor();
25
28
if (!IsVisible) Show();
26
Activate();
29
// DPI 切换可能改变原生窗口尺寸,再按实际尺寸校正一次边缘位置。
27
30
PositionNearCursor();
31
Activate();
28
32
}
29
33
30
34
private void OpenHomeButton_Click(object sender, RoutedEventArgs e) => Run(showHome);
@@ -6,6 +6,7 @@
6
6
<Nullable>enable</Nullable>
7
7
<ImplicitUsings>enable</ImplicitUsings>
8
8
<UseWPF>true</UseWPF>
9
<ApplicationManifest>app.manifest</ApplicationManifest>
9
10
<ApplicationIcon>Resources\Icon\XFEToolBoxIcon.ico</ApplicationIcon>
10
11
<Version>1.1.5</Version>
11
12
<AssemblyTitle>XFEToolBox</AssemblyTitle>
@@ -0,0 +1,23 @@
1
<?xml version="1.0" encoding="utf-8"?>
2
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
3
<assemblyIdentity version="1.0.0.0" name="XFEToolBox.Client.app" />
4
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
5
<security>
6
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
7
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
8
</requestedPrivileges>
9
</security>
10
</trustInfo>
11
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
12
<application>
13
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />
14
</application>
15
</compatibility>
16
<application xmlns="urn:schemas-microsoft-com:asm.v3">
17
<windowsSettings>
18
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true/pm</dpiAware>
19
<dpiAwareness xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">PerMonitorV2,PerMonitor</dpiAwareness>
20
<longPathAware xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">true</longPathAware>
21
</windowsSettings>
22
</application>
23
</assembly>