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 .
Zalecana akcja
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 |