问题描述
现在的笔记本电脑分辨率很高,基本上能达到1920*1080以上,因为笔记本的屏幕小,在这样的分辨率下一切看着都很小,尤其是文字,根本看不清,所以
Win10
很人性化的提供了屏幕缩放功能,一般默认放大比例为150%、200%等,如图所示:
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiI0gTMx81dsQWZ4lmZf1GLlpXazVmcvwFciV2dsQXYtJ3bm9CX9s2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xCMy81dvRWYoNHLwEzX5xCMx8FesU2cfdGLwMzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5yMxUDO1kjZ0YmNyQWZxgDNyYzXwUDMwgTMyAzLcRDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.png)
在这种情况下,我们用
VS
开发的
Winform
窗体显示就有问题了,文字和图像都变得模糊了
解决方案
前置步骤
设置所有的
Form
窗口的
AutoScaleMode
为
Dpi
模式
方法一【添加应用程序清单文件】
推荐使用该方法
1、解决方案资源管理器中,在当前项目上【右键】→ 【添加】→【新建项】
2、找到【应用程序清单文件(仅限Windows)】→【添加】
3、编辑生成的
app.manifest
文件,找到
<application xmlns="urn:schemas-microsoft-com:asm.v3">
去掉注释
方法二【调用Windows API】
static class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[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();
}