WPF Webbrowser-Steuerung und DPI-Skalierung
Ich arbeite mit einer WPF-Anwendung, die das Webbrowser-Steuerelement verwendet, und habe Probleme mit der Skalierung mit hoher DPI.
Es sieht so aus, als würde das Webbrowser-Steuerelement die DPI-Einstellungen des Systems nicht ordnungsgemäß berücksichtigen, während der Rest der WPF-Anwendung die Benutzeroberfläche ordnungsgemäß skaliert. Dies bedeutet, dass auf höheren Skalierungsstufen die WPF-Oberfläche größer wird, während der Inhalt des Webbrowsers auf der ursprünglichen, jetzt kleiner aussehenden Größe bleibt.
Hier ist ein Beispiel für Screenshots einer WPF-App, die zwei Webbrowser-Steuerelemente verwendet.
100% Skalierung:
150% Skalierung:
Beachten Sie, dass im zweiten Bild die Skalierung des Webbrowsers im Verhältnis zum Inhalt des Hauptformulars (Symbolleiste / Menü / Statusleiste) viel kleiner ist als im ersten Bild.
Gibt es eine Möglichkeit, das Webbrowser-Steuerelement zu zwingen, die von der Anwendung geerbten Einstellungen für hohe DPI-Werte ordnungsgemäß zu verwenden?
Dieser MSDN-Link: Ansprechen von DPI-Problemen
zeigt einen sehr einfachen Ansatz (am Ende des Dokuments) zum Implementieren benutzerdefinierter COM-Schnittstellen für Webbrowser, aber ich frage mich, ob es einen saubereren Weg gibt, dies zu beheben.