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.
Ação recomendada
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 |