首页 > 解决方案 > 应用程序设置中的 DPIAware 和“启用应用程序框架”

问题描述

我想在我们的 VB.net WinForms 应用程序中启用 dpi Awareness。所以我把下面的代码放到 app.config 文件中。但是我们的项目没有选中“启用应用程序框架”复选框。我们的应用程序从一个共享的 sub main 和 .show() 开始。当未选中该复选框时,我无法启用 dpiAwareness!(自 19 年 4 月以来,您可以在任务管理器中看到 dpi 模式) app.config 设置被忽略?!我不知道。

在测试项目中,没有问题。在那里我可以选中该框并且 app.config 可以工作,或者我不选中它并且可以在运行时通过 api 调用更改 dpi 模式。

</system.diagnostics>
<startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" />
</startup>

   <System.Windows.Forms.ApplicationConfigurationSection>
  <add key="DpiAwareness" value="PerMonitorV2" />

如果没有“启用应用程序框架”复选框,app.config 中的 dpi 设置将不起作用。

标签: vb.netwinformsdpi

解决方案


启用 Win 版本,如 TnTinMn 所说:

如果要使用 app.config 文件声明 .Net 4.7 及更高版本的 DPI 感知,还必须修改app.manifest文件(项目属性->应用程序->查看窗口设置按钮)并声明程序与 Win 10 兼容。请参阅:配置 Windows 窗体应用以获得高 DPI 支持。如果使用该app.config方法,请不要在文件中设置 dpi 级别,app.manifest因为这会覆盖 app.config设置。

在我们获取一个新生成的 mainfest 文件并添加多年来我们需要的设置之前。我们在项目设置中将应用程序作为“应用程序框架启用”启动。然后我们必须将共享的主代码移动到主窗体。我认为这应该可以完成这项工作。万分感谢。


推荐阅读