Maison > développement back-end > C++ > Comment puis-je corriger le texte flou dans mon application Windows Forms à des paramètres DPI élevés?

Comment puis-je corriger le texte flou dans mon application Windows Forms à des paramètres DPI élevés?

Patricia Arquette
Libérer: 2025-02-03 01:16:09
original
481 Les gens l'ont consulté

How Can I Fix Blurry Text in My Windows Forms Application at High DPI Settings?

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

  1. Ajoutez un nouveau "fichier manifeste d'application" à votre projet.
  2. Remplacez le contenu par le XML suivant:
<?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>
Copier après la connexion

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();
Copier après la connexion

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal