Avalonia 高 DPI 支持需正确配置:Windows 上需声明 PerMonitorV2 DPI 感知、统一使用 DIP 单位、升级至 11.2.5+ 修复多屏 DPI 切换问题,并针对 Android 调整模拟器 DPI 或禁用强制缩放以保跨平台一致。

Avalonia 对高 DPI 场景有原生支持,但需正确配置和使用,否则容易出现窗口跳动、内容模糊、控件错位或缩放不一致等问题。核心在于理解其“设备无关像素(DIP)”机制,并配合系统 DPI 设置与框架行为协同工作。
启用并验证高 DPI 模式
Avalonia 默认启用高 DPI 支持,但 Windows 上仍需确保进程声明为 DPI 感知。在项目主程序入口(如 Program.cs)中,建议显式设置:
- 调用 AppBuilder.Configure().UseWin32()(Windows 平台)时,Avalonia 会自动注册 DPI 感知;
- 确认应用清单(app.manifest)中包含:
microsoft-com:asm.v3">
windowsSettings>true/pm PerMonitorV2
windowsSettings>
- 运行时可通过 VisualRoot?.RenderScaling 获取当前窗口的实际缩放比例(例如 1.75 表示 175%),用于调试或条件逻辑。
统一布局单位:坚持使用 DIP,避免硬编码像素
Avalonia 的坐标和尺寸单位默认是设备无关像素(1 DIP = 1/96 英寸),所有控件、画布、变换都基于此。这意味着:
标签: android windows 编码 app 显示器 win microsoft c# 模拟器 canva
还木有评论哦,快来抢沙发吧~