我有一个WinForms应用程序,我在Win10 PC上构建,该应用程序可以在另一台Win10机器上运行。问题是字体在另一台机器上变形了。第一张照片来自我的电脑,第二张照片来自另一台电脑。主要问题是难以区分数字6和8.屏幕截图来自DataGridView组件,但它基本上与应用程序中的每个标签相同。我没有更改默认 Microsoft Sans Serif的字体; 8,25pt 。知道什么可能是错的吗?
答案 0 :(得分:0)
显然,这个问题始于Windows 8。
找到解决方案1:
转到Project>添加清单添加新项>应用程序清单文件。
对于Visual Studio 2015及更高版本,您只需取消注释此代码:
<application xmlns="urn:schemas-microsoft-com:asm.v3">
<windowsSettings>
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
</windowsSettings>
</application>
在旧版本的Visual Studio中,您需要自己添加此代码,因为它不会自动添加到清单中。
解决方案2:
问题必然来自屏幕分辨率的差异。 在这种情况下,您必须更改窗口缩放模式。 默认情况下,winform窗口会根据字体大小调整其缩放比例。
属性: AutoScaleMode ==&gt;字体
通过修改此值来进行多项测试。
答案 1 :(得分:0)
尝试以下方法:
将其从字体(默认)更改为Dpi。
static class Program
{
[STAThread]
static void Main()
{
if (Environment.OSVersion.Version.Major >= 6)
SetProcessDPIAware();
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new MainForm());
}
[System.Runtime.InteropServices.DllImport("user32.dll")]
private static extern bool SetProcessDPIAware();
}