DefaultValueAttribute wurde aus einigen Eigenschaften entfernt
DefaultValueAttribute wurden aus Steuerelementeigenschaften entfernt, die von der Standardschrifthöhe abhängig sind.
Eingeführt in Version
.NET 8
Vorheriges Verhalten
Die betroffenen Eigenschaften wurden mit DefaultValueAttributeversehen, und Standardwerte wurden entsprechend einer angenommenen anwendungsweiten Schriftart hartcodiert.
Neues Verhalten
Ab .NET 8 wird das Attribut aus bestimmten Eigenschaften entfernt. Entwurfszeit-Standardwerte werden beim Start basierend auf den aktuellen Schriftartmetriken berechnet.
Ändern der Kategorie
Diese Änderung ist eine Verhaltensänderung.
Grund für die Änderung
Das Attribut DefaultValueAttribute dient zum Definieren konstanter Standardwerte, die vom Windows Forms-Designer verwendet werden. Bisher wurde dieses Attribut verwendet, um Standardwerte für bestimmte Eigenschaften anzugeben, die von der aktuellen Schrifthöhe abhängen. In .NET Core 3.1 wurde eine neue Standardschriftart eingeführt, die Attributwerte wurden jedoch nicht entsprechend aktualisiert. Darüber hinaus gibt es nun eine API zum Ändern der Anwendungsschriftart. Daher ist es sinnvoll, anstelle von konstanten Standardwerten dynamische Standardwerte zu verwenden.
Der Designer stellt Methoden bereit, um dynamische Standardwerte anzugeben, für Eigenschaften, die mit DefaultValueAttributeversehen sind, wird jedoch stattdessen immer der konstante Standardwert verwendet. Die Methoden zum Angeben dynamischer Standardwerte behalten die Entwurfszeitfunktionalität bei, die vom Attribut bereitgestellt wird.
Empfohlene Maßnahme
DefaultValueAttribute ist für die interne Verwendung in Entwurfszeitszenarios vorgesehen. In anderen Szenarios sollten sie nicht verwendet werden.
Betroffene APIs
In der folgenden Tabelle sind die betroffenen Eigenschaften aufgeführt.
Eigenschaft | Ändern der Version |
---|---|
System.Windows.Forms.DataGridViewRow.Height | Vorschau 2 |
System.Windows.Forms.ListBox.ItemHeight | Vorschau 2 |