Свойство DefaultValueAttribute удалено из некоторых свойств

DefaultValueAttribute удален из свойств элемента управления, зависящих от высоты шрифта по умолчанию.

Представленная версия

.NET 8

Предыдущее поведение

Затронутые свойства были украшены DefaultValueAttribute, а значения по умолчанию жестко закодированы в соответствии с предполагаемым шрифтом на уровне всего приложения.

Новое поведение

Начиная с .NET 8 атрибут удаляется из определенных свойств. Значения по умолчанию времени разработки вычисляются при запуске на основе текущих метрик шрифта.

Изменение категории

Это изменение поведения.

Причина изменения

Атрибут DefaultValueAttribute предназначен для определения значений по умолчанию констант, используемых конструктором Windows Forms. В прошлом этот атрибут использовался для указания по умолчанию определенных свойств, зависящих от текущей высоты шрифта. В .NET Core 3.1 появился новый шрифт по умолчанию, но значения атрибутов не были обновлены соответствующим образом. Кроме того, теперь есть API для изменения шрифта приложения. Таким образом, вместо константных значений следует использовать динамические значения по умолчанию.

Дизайнер предоставляет методы для указания динамических значений по умолчанию, однако для свойств, декорированных с помощью DefaultValueAttribute, он всегда использует постоянное значение по умолчанию. Методы указания значений по умолчанию сохраняют функциональность, доступную через атрибут на этапе проектирования.

DefaultValueAttribute предназначен для использования только внутри системы в сценариях разработки. Его не следует использовать в других сценариях.

Затронутые API

В следующей таблице перечислены затронутые свойства.

Недвижимость Изменение версии
System.Windows.Forms.DataGridViewRow.Height Предварительная версия 2
System.Windows.Forms.ListBox.ItemHeight Предварительная версия 2