【问题标题】:DPIAware and "Enable application framework" at Application Settings应用程序设置中的 DPIAware 和“启用应用程序框架”
【发布时间】:2019-10-10 08:05:48
【问题描述】:

我想在我们的 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 设置将无法工作。

【问题讨论】:

  • 您没有在这里回答您自己的问题吗:“app.config 中的 dpi 设置在没有“启用应用程序框架”复选框的情况下将无法工作”?
  • 不,我无法在我们的特殊应用中检查这个。
  • 您还可以调用一些临时的本地方法。见注释here
  • 您没有发布失败的代码(当它不应该发布时),所以没有人可以看到您在app.manifest 文件中实际编写的内容。请注意,在 app.manifest 文件中, 条目都需要存在,并且 设置(字面值)不等于 app.config 之一。
  • 如果你想使用 app.config 文件来声明 .Net 4.7 及以上版本的 DPI 感知,你还必须修改 app.manifest 文件(项目属性->应用程序->查看窗口设置按钮) 并声明程序与 Win 10 兼容。请参阅:Configuring your Windows Forms app for high DPI support。如果使用 app.config 方法,*不要在 app.manifest 文件中设置 dpi 级别,因为这将覆盖 app.config 设置。

标签: vb.net winforms dpi


【解决方案1】:

启用 Win 版本,如 TnTinMn 所说:

如果您想使用 app.config 文件为 .Net 声明 DPI 感知 4.7及以上,还得修改app.manifest文件(Project Properties->Application->View Window Settings按钮)并声明 程序与 Win 10 兼容。见:Configuring your Windows Forms app for high DPI support。如果使用app.config 方法,不要设置 app.manifest 文件中的 dpi 级别,因为这将覆盖 app.config 设置。

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

【讨论】:

  • 现在我从该应用程序打开另一个对话框表单,我得到: System.Collections.Generic.KeyNotFoundException HResult=0x80131577 Nachricht = Der angegebene Schlüssel war nicht im Wörterbuch angegeben。 Quelle = mscorlib Stapelüberwachung:在 System.Collections.Generic.Dictionary 的 System.ThrowHelper.ThrowKeyNotFoundException()`2.get_Item(TKey key) 在 System.Windows.SystemResources.GetDpiAwarenessCompatibleNotificationWindow(
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多