Ein leeres Formular wird nicht auf die neue Ebene skaliert, wenn Sie eine DPI-fähige Anwendung auf einer anderen Skalierungsebene in .NET Framework 4.7 ausführen
Symptome
Gehen Sie davon aus, dass Sie eine Windows Forms DPI-fähige Anwendung auf einem Computer haben, auf dem .NET Framework 4.7 installiert ist. Nachdem Sie alle erforderlichen Änderungen an den Konfigurationseinstellungen zu einem neuen Projekt hinzugefügt haben (und keine weiteren Änderungen vorgenommen haben) und dann die Anwendung auf einer anderen Skalierungsebene ausgeführt haben, wird das leere Formular nicht wie erwartet auf die neue Ebene skaliert.
Ursache
Dieses Problem tritt aus folgenden Gründen auf:
Standardmäßig ist die AutoScaleDimensions -Eigenschaft nicht serialisiert. Daher gibt es zur Laufzeit keine Möglichkeit zu wissen, ob das Formular skaliert werden soll oder ob die Größen bereits skaliert sind.
Wenn die AutoScaleDimensions- Eigenschaft definiert ist, erzwingt sie keinen Neuskalierungsdurchlauf, wenn keine Eigenschaft für das Formular festgelegt ist (oder keine Steuerelemente hinzugefügt werden). Sie können mit Sicherheit davon ausgehen, dass, wenn keine Eigenschaft geändert wurde, nichts zu skalieren ist.
Problemumgehung
Um dieses Problem zu umgehen, fügen Sie dem Formular beliebige Steuerelemente hinzu, damit die Skalierung ordnungsgemäß funktioniert.
Dieses Problem wird voraussichtlich in .NET Framework 4.7.1 behoben.
Weitere Informationen zu bekannten Problemen in .NET Framework 4.7 finden Sie unter Bekannte Probleme für .NET Framework 4.7 .
Mehr Informationen
Erstellen einer DPI-fähigen Anwendung
No comments:
Post a Comment