vb.net - 应用程序设置中的 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 设置将不起作用。
解决方案
启用 Win 版本,如 TnTinMn 所说:
如果要使用 app.config 文件声明 .Net 4.7 及更高版本的 DPI 感知,还必须修改
app.manifest
文件(项目属性->应用程序->查看窗口设置按钮)并声明程序与 Win 10 兼容。请参阅:配置 Windows 窗体应用以获得高 DPI 支持。如果使用该app.config
方法,请不要在文件中设置 dpi 级别,app.manifest
因为这会覆盖app.config
设置。
在我们获取一个新生成的 mainfest 文件并添加多年来我们需要的设置之前。我们在项目设置中将应用程序作为“应用程序框架启用”启动。然后我们必须将共享的主代码移动到主窗体。我认为这应该可以完成这项工作。万分感谢。
推荐阅读
- python - python多变量线性回归
- objectgears - 配置数据库基线 - //CheckDifferentData('cpu', OGActualDataRow, OGDataRows);
- java - Java async order
- angular - 如何显示不同的数据
如果用户在使用 Angular 时登录/注销? - playframework - 如何在 Play 中的所有响应中设置标题!框架 2.7 (Java)
- amazon-web-services - AWS IAM Groups naming strategy
- flutter - Flutter:容器内的垂直滚动
- javascript - 我使用了 HTML + JAVAScript,但我只能看到 JAVAScript
- python - 没有 response.history 的 Python Unshort URL
- java - How to add "WITH" clause to SELECT query with sqlbuilder