Windows App Certification Kit 10.0.19041.685 测试报告出现如下错误:

 

高 DPI 支持

警告DPIAwarenessValidation

  • 警告: DPI 感知验证测试检测到以下警告:
    • 文件 <ProjectName>\<ProjectName>.exe 既没有清单中表明的 PerMonitorV2也没有对 DPI 感知 API 的调用例如 user32!SetProcessDpiAwarenessContext 或 user32!SetThreadDpiAwarenessContext。
    • 应用 xxxxxx.ProjectName_<version>_neutral__<storeid> 不是 DPI 感知应用。

     

  • 未修复时会产生影响: 如果应用不具有 DPI 识别功能但在高 DPI 显示设置上运行,则可能会遇到 UI 元素缩放不正确、文本截断以及影像模糊等问题。
  • 如何修复: 建议你在应用部件清单中将应用声明为 DPI 感知应用。 否则,应用应使用 DPI 感知 API 调用,例如 SetProcessDpiAwarenessContext 或 SetThreadDpiAwarenessContext API。
    编写高 DPI 应用

解决办法如下:

在<ProjectName>项目点击右键新建一个app.manifest文件,用以下内容替换掉app.manifest中的内容:

<?xml version="1.0" encoding="utf-8"?>
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
  <assemblyIdentity version="1.0.0.0" name="HelloWinUI3.app"/>

  <application xmlns="urn:schemas-microsoft-com:asm.v3">
    <windowsSettings>
      <!-- The combination of below two tags have the following effect:
           1) Per-Monitor for >= Windows 10 Anniversary Update
           2) System < Windows 10 Anniversary Update
      -->
      <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true/PM</dpiAware>
      <dpiAwareness xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">PerMonitorV2, PerMonitor</dpiAwareness>
    </windowsSettings>
  </application>
</assembly>

 

重新发布测试即可!

image

 



如果您对C#游戏开发感兴趣,可以扫下面二维码加入我们的QQ群来一起学习交流

原创文章,转载请注明本文链接地址(违者必究):没有清单中表明的 PerMonitorV2也没有对 DPI 感知 API 的调用的解决办法

打赏作者
很喜欢这篇文章,打赏犒劳下作者,以此激励作者创作更多

您的支持将鼓励我们继续创作!

[微信] 扫描二维码打赏

[支付宝] 扫描二维码打赏