Heim > Backend-Entwicklung > C++ > Wie kann ich verschwommene Text in meiner Windows Forms -Anwendung in hohen DPI -Einstellungen beheben?

Wie kann ich verschwommene Text in meiner Windows Forms -Anwendung in hohen DPI -Einstellungen beheben?

Patricia Arquette
Freigeben: 2025-02-03 01:16:09
Original
481 Leute haben es durchsucht

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

Scharfe Textwiedergabe in High-DPI-Windows-Formulare-Anwendungen

hohe DPI -Einstellungen (150% und höher) können aufgrund des Standard -Skalierungsmechanismus von Windows einen verschwommenen Text in Windows -Formularenanwendungen verursachen. Um ein klares Textrendern zu erzielen, muss Ihre Bewerbung ihre Kompatibilität mit hoher DPI ausdrücklich erklären. Dies erfolgt durch Ändern des Anwendungsmanifests oder der Verwendung eines P/Invoke -Aufrufs.

Methode 1: Ändern des Anwendungsmanifests

  1. Fügen Sie Ihrem Projekt eine neue "Anwendungsmanifestdatei" hinzu.
  2. Ersetzen Sie den Inhalt durch den folgenden XML:
<?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>
Nach dem Login kopieren

Methode 2: Verwenden Sie P/Invoke für ClickOnce -Bereitstellungen

Fügen Sie für ClickOnce -Bereitstellungen den folgenden Code Ihrer Main() -Methode hinzu:

[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();
Nach dem Login kopieren

Durch die Implementierung einer der beiden Methoden wird Ihre Anwendung mit hoher DPI-Skalierung korrekt behandelt, um eine scharfe Textanzeige auf hochauflösenden Bildschirmen zu gewährleisten.

Das obige ist der detaillierte Inhalt vonWie kann ich verschwommene Text in meiner Windows Forms -Anwendung in hohen DPI -Einstellungen beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage