High DPI support in Windows Forms's image'
Lizenzinfos

1303
Robert's profile picture'
Thema
Thema
Fragen
3
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 Themen (0)
Alle Inhalte auf dieser Seite stehen, soweit nicht anders angegeben, unter der Lizenz Creative Commons Namensnennung 4.0 (CC-BY-4.0). Einzelne Elemente (aus anderen Quellen übernommene Fragen, Bilder, Videos, Textabschnitte etc.) können anderen Lizenzen unterliegen und sind entsprechend gekennzeichnet.