Heim >Backend-Entwicklung >C++ >Wie kann ich dazu führen, dass meine Windows-Anwendungen einen knusprigen Text auf High-DPI-Bildschirmen anzeigen?
Erreichen von knackigem Textumschlag in Windows-Anwendungen mit hohen DPI
hochauflösende Anzeigen zeigen eine Herausforderung für Windows-Anwendungen: Skalierte Schnittstellen führen häufig zu verschwommenem Text. Dies ist eine Folge der Bitmap-basierten DPI-Virtualisierung von Windows. Um dies zu beheben und einen scharfen Text sicherzustellen, müssen Anwendungen ihre Fähigkeit ausdrücklich erklären, hohe DPI -Einstellungen auszusetzen.
Aktivierung der Kompatibilität mit hoher DPI: Der Manifest-Ansatz
Die Lösung beinhaltet die Änderung der Manifestdatei Ihrer Anwendung. Hinzufügen der <dpiaware>
-Elementsignale zu Windows, die Ihre Anwendung unterstützt, unterstützt hohe DPI. Hier ist der notwendige Manifestcode:
<code class="language-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></code>
Alternativ: programmatischer Ansatz (ClickOnce -Bereitstellungen)
Für ClickOnce -Bereitstellungen können Sie SetProcessDPIAware()
in der Methode Main()
verwenden:
<code class="language-csharp">[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();</code>
Visual Studio 2015 Update 1 und später:
Neuere Versionen von Visual Studio (Update 1 und später) vereinfachen dies. Die Manifestdatei ist in neuen Projekten enthalten. einfach das <dpiaware>
tag.
Zusammenfassung:
, indem Sie Ihre Anwendung DPI-AWWARE (über die Manifest oder SetProcessDPIAware()
) deklarieren, umgehen Sie die DPI-Virtualisierungsbeschränkungen von Windows. Dies gewährleistet scharfe, skalierbare Textrendern auf High-DPI-Bildschirmen und verbessert die Benutzererfahrung erheblich.
Das obige ist der detaillierte Inhalt vonWie kann ich dazu führen, dass meine Windows-Anwendungen einen knusprigen Text auf High-DPI-Bildschirmen anzeigen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!