DefaultValueAttribute foi removido de algumas propriedades

DefaultValueAttribute foi removido das propriedades de controle que dependem da altura da fonte padrão.

Versão introduzida

.NET 8

Comportamento anterior

As propriedades afetadas foram decoradas com DefaultValueAttribute e os valores padrão foram codificados de acordo com uma fonte assumida para todo o aplicativo.

Novo comportamento

Do .NET 8 em diante, o atributo foi removido de algumas propriedades. Os valores padrão de tempo de design são calculados na inicialização com base nas métricas de fonte atuais.

Categoria da alteração

Esta é uma alteração de comportamento.

Motivo da alteração

O atributo DefaultValueAttribute foi projetado para definir os valores padrão constantes que são usados pelo designer do Windows Forms. No passado, esse atributo era usado para especificar padrões em determinadas propriedades que dependem da altura da fonte atual. Uma nova fonte padrão foi introduzida no .NET Core 3.1, mas os valores de atributo não foram atualizados adequadamente. Além disso, agora há uma API para modificar a fonte do aplicativo. Portanto, faz sentido usar valores padrão dinâmicos em vez de constantes.

Embora o designer forneça métodos para especificar valores padrão dinâmicos, ele sempre usa o valor padrão constante para propriedades decoradas com DefaultValueAttribute. Os métodos para especificar padrões dinâmicos preservam a funcionalidade de tempo de design fornecida pelo atributo.

DefaultValueAttribute destina-se ao uso interno em cenários de tempo de design. Ele não deve ser usado em outros cenários.

APIs afetadas

A tabela a seguir lista as propriedades afetadas.

Propriedade Alterar a versão
System.Windows.Forms.DataGridViewRow.Height Preview 2
System.Windows.Forms.ListBox.ItemHeight Preview 2