Text
Text
Fragen
3
Feed
Analytics

DPI Awareness

Es gibt vier verschiedene Modi von "DPI-Awarness", die konfiguriert werden können.

  • Unaware: Bitmap-Dehnung

  • System: seit Windows-Vista. Die DPI-Einstellung des Hauptdisplays wird verwendet. Bitmap-Dehnung kommt zum Einsatz.

  • Per-Monitor: seit Windows 8.1. Jeder Bildschirm hat seine eigene DPI Einstellung. Anwendnung werden bei DPI-Änderung benachrichtigt.

  • Per-Monitor V2: seit Windows 10 Creators Update (1703). Zusätzlich besteht eine automatische Skalierung der "Nonclient-Area" (also Titelzeile, Menuzeile usw.) und viele Controls und Dialoge.

Die Einstellung für die "DPI-Awarness" kann wie folgt erfolgen:

  • Im manifest file

  • Per nativer API

  • In der App.config (seit .NET Framework 4.7 und Windows Forms 4.8)

  • Also statische Methode in .NET Core 3.0 und .NET 5 für Windows Forms

DPI Scaling in WinForms

Bei der Skalierung werden die Positionen und Größen der Controls abhängig von der Skalierung neu berechnet. Dies geschieht nur, wenn die Anwengung als DPI-Aware konfiguriert wird!

Im Designer.cs/vb File sollten folgende Einstellung vorhanden sein.

this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;

Alle Container müssen denselben AutoScaleMode verwenden!

Dokumentation:

Untergeordnete Seiten (0)