Udostępnij za pośrednictwem


DefaultValueAttribute usunięto z niektórych właściwości

DefaultValueAttribute został usunięty z właściwości kontrolki, które są zależne od domyślnej wysokości czcionki.

Wprowadzona wersja

.NET 8

Poprzednie zachowanie

Właściwości, których dotyczy problem, zostały ozdobione wartościami DefaultValueAttribute, a wartości domyślne zostały zakodowane na stałe zgodnie z przyjętą czcionką dla całej aplikacji.

Nowe zachowanie

Począwszy od platformy .NET 8, atrybut jest usuwany z niektórych właściwości. Wartości domyślne czasu projektowania są obliczane podczas uruchamiania na podstawie bieżących metryk czcionek.

Kategoria zmiany

Ta zmiana jest zmianą behawioralną.

Przyczyna wprowadzenia zmiany

Atrybut DefaultValueAttribute jest przeznaczony do definiowania stałych wartości domyślnych używanych przez projektanta formularzy systemu Windows. W przeszłości ten atrybut został użyty do określenia wartości domyślnych dla niektórych właściwości, które zależą od bieżącej wysokości czcionki. Nowa czcionka domyślna została wprowadzona na platformie .NET Core 3.1, ale wartości atrybutów nie zostały odpowiednio zaktualizowane. Ponadto istnieje teraz interfejs API do modyfikowania czcionki aplikacji. W związku z tym warto używać dynamicznych wartości domyślnych zamiast stałych.

Projektant udostępnia metody określania dynamicznych wartości domyślnych, jednak dla właściwości ozdobionych za pomocą DefaultValueAttributepolecenia zawsze używa stałej wartości domyślnej. Metody określania dynamicznych wartości domyślnych zachowują funkcjonalność czasu projektowania zapewnianą przez atrybut .

DefaultValueAttribute jest przeznaczony do użytku wewnętrznego w scenariuszach czasu projektowania. Nie należy go używać w innych scenariuszach.

Dotyczy interfejsów API

W poniższej tabeli wymieniono właściwości, których dotyczy problem.

Właściwości Zmienianie wersji
System.Windows.Forms.DataGridViewRow.Height Preview 2
System.Windows.Forms.ListBox.ItemHeight Preview 2