Se ha quitado DefaultValueAttribute de algunas propiedades
DefaultValueAttribute se ha quitado de las propiedades de control que dependen del alto de fuente predeterminado.
Versión introducida
.NET 8
Comportamiento anterior
Las propiedades afectadas se decoraron con DefaultValueAttribute y los valores predeterminados se codificaron de forma rígida según una fuente de toda la aplicación.
Comportamiento nuevo
A partir de .NET 8, el atributo se quita de determinadas propiedades. Los valores predeterminados en tiempo de diseño se calculan al inicio en función de las métricas de fuente actuales.
Cambio de categoría
Este es un cambio de comportamiento.
Motivo del cambio
El atributo DefaultValueAttribute 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 los valores predeterminados de 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.
Acción recomendada
DefaultValueAttribute está diseñado para uso interno en escenarios en tiempo de diseño. No debe usarlo en otros escenarios.
API 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 |