Heim >Backend-Entwicklung >C++ >Warum wurde meine DPI-Bewusstseinsanwendung plötzlich das DPI-System bewusst?
DPI Ohne weiße Anwendung wurde plötzlich das System bewusst: Fehlerbehebungshandbuch
Dieses Dokument befasst sich mit einem Szenario, in dem eine zuvor bewartte DPI-Anwendung unerwartet auf DPI-System-AWARE-Modus ohne Codeänderungen übergeht. Diese Verschiebung stört das Vertrauen der Anwendung in die Windows -Virtualisierung zur Skalierung.
Das Problem: Eine Anwendung, die zuvor als DPI nicht bekannt ist, weist jetzt ein DPI -System auf das Verhalten auf.
Wahrscheinliche Ursache: Die wahrscheinlichste Ursache ist die Einführung einer DPI-bewussten Abhängigkeit, entweder direkt oder indirekt. Referenzierung von DPI-bewahrten Komponenten kann die Vererbung ihrer DPI-Bewusstseinseinstellung auslösen.
Auflösungsstrategien:
Verschiedene Methoden können den DPI des Anwendung wiederherstellen:
Deaktivieren Sie explizit das DPI -Bewusstsein (AssemblyInfo.cs): Fügen Sie das folgende Attribut Ihrer AssemblyInfo.cs
-Datei hinzu, um alle ererbten DPI -Awareness -Einstellungen zu überschreiben:
<code class="language-csharp">[assembly: System.Windows.Media.DisableDpiAwareness]</code>
App Manifest -Konfiguration: In Ihrer Anwendungsmanifestdatei setzen
<code class="language-xml"><dpiaware>false</dpiaware></code>
Windows -API -Ansatz: Verwenden Sie die geeigneten Windows -API -Funktionen, um den DPI -Bewusstseinskontext des Prozesses festzulegen:
SetProcessDPIAware()
SetProcessDpiAwareness()
SetProcessDpiAwarenessContext()
SetProcessDpiAwarenessContext()
für eine optimale Kompatibilität. DPI_AWARENESS_CONTEXT_UNAWARE_GDISCALED
DPI-Bewusstsein pro Thread (falls erforderlich): Für eine körnigere Kontrolle über die Verwendung von , um das DPI-Bewusstsein auf einer Thread-Basis zu verwalten. Dieser Ansatz ist im Allgemeinen weniger bevorzugt, es sei denn, dies ist absolut notwendig. SetThreadDpiAwarenessContext()
Das obige ist der detaillierte Inhalt vonWarum wurde meine DPI-Bewusstseinsanwendung plötzlich das DPI-System bewusst?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!