>在高dpi Windows表单应用程序中呈现敏锐的文本应用程序
>
由于Windows的默认规模机制,
高DPI设置(150%及以上)可能会在Windows表单应用程序中引起模糊文本。 为了实现清晰的文本渲染,您的应用程序必须明确声明其高DPI兼容性。 这是通过修改应用程序清单或使用P/Invoke调用来完成的。>
方法1:修改应用程序清单>
>向您的项目添加一个新的“应用清单文件”。-
>用以下XML替换内容:-
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <?xml version= "1.0" encoding= "utf-8" ?>
<assembly manifestVersion= "1.0" xmlns= "urn:schemas-microsoft-com:asm.v1" xmlns:asmv3= "urn:schemas-microsoft-com:asm.v3" >
<assemblyIdentity name= "MyApplication.app" version= "1.0.0.0" />
<trustInfo xmlns= "urn:schemas-microsoft-com:asm.v2" >
<security>
<requestedPrivileges xmlns= "urn:schemas-microsoft-com:asm.v3" >
<requestedExecutionLevel level= "asInvoker" uiAccess= "false" />
</requestedPrivileges>
</security>
</trustInfo>
<application>
<windowsSettings xmlns= "http://schemas.microsoft.com/SMI/2005/WindowsSettings" >
<dpiAware>true</dpiAware>
</windowsSettings>
</application>
</assembly>
|
登录后复制
>
方法2:使用p/indoke进行clickonce部署>
> ClickOnce部署,将以下代码添加到您的
方法:>
Main()
通过实现这两种方法,您的应用程序将正确处理高DPI缩放,以确保在高分辨率屏幕上显示尖锐的文本。
1 2 3 4 5 6 7 8 9 10 | [STAThread]
static void Main() {
if (Environment.OSVersion.Version.Major >= 6) SetProcessDPIAware();
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run( new Form1());
}
[System.Runtime.InteropServices.DllImport( "user32.dll" )]
private static extern bool SetProcessDPIAware();
|
登录后复制
以上是如何在高DPI设置下的Windows表单应用程序中修复模糊文本?的详细内容。更多信息请关注PHP中文网其他相关文章!