Le rendu de texte net dans les applications de formulaires Windows High-DPI
Les paramètres DPI élevés (150% et plus) peuvent provoquer un texte flou dans les applications Windows Forms en raison du mécanisme de mise à l'échelle par défaut de Windows. Pour obtenir un rendu de texte clair, votre application doit déclarer explicitement sa compatibilité à haute teneur en DPI. Cela se fait en modifiant le manifeste de l'application ou en utilisant un appel p / invoqué.
Méthode 1: Modification du manifeste de l'application
<?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>
Méthode 2: Utilisation de p / invoquer pour les déploiements de clics
Pour les déploiements de clics, ajoutez le code suivant à votre méthode Main()
:
[STAThread] static void Main() { if (Environment.OSVersion.Version.Major >= 6) SetProcessDPIAware(); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); // Adjust as needed } [System.Runtime.InteropServices.DllImport("user32.dll")] private static extern bool SetProcessDPIAware();
En implémentant l'une ou l'autre méthode, votre application gérera correctement la mise à l'échelle DPI, assurant un affichage de texte net sur les écrans haute résolution.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!