DPI -Bewusstsein: Windows Bitmap Scaling (6.0) vs. System AWARE (6.1)
In dieser Fallstudie wird eine Anwendung untersucht, die ursprünglich als DPI-Bewusstsein entwickelt wurde und auf Windows-Bitmap-Skalierung für hoch-DPI-Anzeigen angewiesen ist. Ein Update auf Version 6.1 hat das DPI -Bewusstsein unerwartet für das System bewusst geändert, was zu einer UI -Verzerrung führt.
Fehlerbehebung bei der Ausgabe
Die Ursache ist eine neu enthaltene Komponente von Drittanbietern in die aktualisierte Version. Trotz der inhärenten DPI-Beobachtung der Anwendung führte die Komponente von Drittanbietern DPI-Bewusstsein ein.
Verwalten von DPI -Bewusstsein
DPI -Bewusstsein kann in dem Anwendungsmanifest explizit gesteuert werden:
<code class="language-xml"><application> <windowsSettings> <dpiAware>false</dpiAware> </windowsSettings> </application></code>
Alternativ bieten Windows -APIs programmatische Steuerung:
<code class="language-csharp">SetProcessDPIAware(); GetAwarenessFromDpiAwarenessContext(GetWindowDpiAwarenessContext(hWnd));</code>
Lösung
Um zum DPI-Beobachtung zurückzukehren, fügen Sie dem Anwendungsmanifest <dpiAware>false</dpiAware>
hinzu. Wenn eine Komponente von Drittanbietern das DPI-Bewusstsein erzwingt, sollten Sie System.Windows.Media.DisableDpiAwareness
zu AssemblyInfo.cs
hinzufügen, um das unerwünschte Verhalten zu überschreiben.
Das obige ist der detaillierte Inhalt vonWarum zeigt meine DPI-Bewusstseinsanwendung nach der Aktualisierung des Systems plötzlich eine UI-Verzerrung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!