Поделиться через


Свойство 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