Compartir a través de


Se ha quitado DefaultValueAttribute de algunas propiedades

DefaultValueAttribute se ha eliminado de las propiedades de control que dependen de la altura predeterminada de la fuente.

Versión introducida

.NET 8

Comportamiento anterior

Las propiedades afectadas se decoraron con DefaultValueAttribute y los valores predeterminados se codificaron rígidamente según una fuente asumida para toda la aplicación.

Nuevo comportamiento

A partir de .NET 8, el atributo se quita de determinadas propiedades. Los valores predeterminados en tiempo de diseño se calculan en el inicio en función de las métricas de fuente actuales.

Cambiar categoría

Este es un cambio de comportamiento.

Motivo del cambio

El DefaultValueAttribute atributo está diseñado para definir valores predeterminados constantes utilizados por el diseñador de Windows Forms. En el pasado, este atributo se usó para especificar valores predeterminados en determinadas propiedades que dependen del alto de fuente actual. Se introdujo una nueva fuente predeterminada en .NET Core 3.1, pero los valores de atributo no se actualizaron en consecuencia. Además, ahora hay una API para modificar la fuente de la aplicación. Por lo tanto, tiene sentido usar valores predeterminados dinámicos en lugar de valores constantes.

El diseñador proporciona métodos para especificar valores predeterminados dinámicos; sin embargo, para las propiedades decoradas con DefaultValueAttribute, siempre usa el valor predeterminado constante en su lugar. Los métodos para especificar valores predeterminados dinámicos conservan la funcionalidad en tiempo de diseño proporcionada por el atributo .

DefaultValueAttribute está diseñado para uso interno en escenarios en tiempo de diseño. No debe usarlo en otros escenarios.

Las APIs afectadas

En la tabla siguiente se enumeran las propiedades afectadas.

Propiedad Cambio de versión
System.Windows.Forms.DataGridViewRow.Height Versión preliminar 2
System.Windows.Forms.ListBox.ItemHeight Versión preliminar 2