我使用VB .NET编写的WinForms应用程序在非默认DPI设置上“爆炸”。此应用程序使用一些不适用于缩放的ActiveX控件。
我很恳请你不要建议我改写它,把它转移到WPF和这种建议。我完全清楚这个应用程序很糟糕,非常糟糕。我的工作就是让它“工作”。
有没有办法让应用程序完全忽略任何DPI设置?任何解决方案都是好的,只要它有效。
答案 0 :(得分:0)
尝试将AutoScaleMode
设置为None
以进行自动缩放。你可能还需要扩展规模。字体。这可以通过在InitializeComponent
Font = new Font(Font.Name, Font.Size * 96f / CreateGraphics().DpiX, Font.Style, Font.Unit, Font.GdiCharSet, Font.GdiVerticalFont);
我不知道托管的ActiveX控件如何响应这些设置。你尝试的时候请告诉我。
答案 1 :(得分:0)
右键单击可执行文件 - >属性 - >兼容性 - >检查"在高DPI设置上禁用显示缩放"。 (除了10之外的Windows版本可能略有不同。) 对于我来说,这对于我来说是爆炸性的应用程序#34;
答案 2 :(得分:0)
将此添加到清单文件应该可以解决问题:
<asmv3:windowsSettings
xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
<dpiAware>false</dpiAware>
</asmv3:windowsSettings>