我有一个桌面应用程序,我发送给客户。对于所有机器上的一个客户端,它的分辨率一直都是错误的。我已经创建了一个虚拟机并将其设置为分辨率,当然,一切看起来都很好。他们在1280x1024。该应用程序在其他客户的大约三十台其他机器上运行就好了。我让他们抓一个屏幕打印,这里是: customer screen shot that is malformed from their computer screen how it looks on dev, test, and other customers computers
需要帮助!我不知道为什么/这里需要什么。
答案 0 :(得分:0)
检查Windows中的DPI设置。
Windows 7: http://www.lawfirmsoftware.com/support/change_dpi_settings_windows_7.htm
Windows 8:http://www.eightforums.com/tutorials/28310-dpi-scaling-size-change-displays-windows-8-1-a.html
Windows 10:http://www.tenforums.com/tutorials/5990-dpi-scaling-level-displays-change-windows-10-a.html
另请参阅有关如何更新自己的应用的问题:Disable DPI awareness for WPF application
答案 1 :(得分:0)
Autoscalemode设置为FONT。我应该把它设置为NONE吗?不确定那个设置是什么...我在VS 2015. - 计算Smomputation
作为第一步,我建议您声明您的应用程序能够识别DPI。这是通过 app.manifest 文件完成的。
您可以通过以下方式在VS中访问此文件:
项目菜单 - > ProjName属性 - >应用程序选项卡 - >查看Windows设置按钮
在文件中查找以下代码块:
<!--
<application xmlns="urn:schemas-microsoft-com:asm.v3">
<windowsSettings>
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
</windowsSettings>
</application>
-->
默认情况下,此部分已注释掉。要启用它,请删除第一行(<!--
)和最后一行(-->
)。
执行此操作将阻止操作系统进行DPI虚拟化,可以将其视为显示的表单及其组件的表单位图缩放。
如果结果显示仍然混乱,请尝试将Form.AutoScaleMode
设置为Dpi
或None
。
答案 2 :(得分:-1)
您的错误很常见。 您只需要更改对齐属性并禁用顶部属性。