从某些属性中移除了 DefaultValueAttribute

DefaultValueAttribute 已从依赖于默认字体高度的控件属性中移除。

引入的版本

.NET 8

旧行为

受影响的属性使用 DefaultValueAttribute 进行修饰,默认值根据假定的应用程序范围的字体进行硬编码。

新行为

从 .NET 8 开始,从某些属性中移除了此特性。 设计时默认值在启动时根据当前字体指标进行计算。

更改类别

此更改为行为变更

更改原因

DefaultValueAttribute 特性旨在定义 Windows 窗体设计器使用的默认常数值。 过去,此特性用于指定依赖于当前字体高度的某些属性的默认值。 .NET Core 3.1 中引入了新的默认字体,但此特性值不会相应地进行更新。 此外,现在有一个用于修改应用程序字体的 API。 因此,使用动态默认值而不是默认常数值是有意义的。

设计器提供了用于指定动态默认值的方法,但是,对于使用 DefaultValueAttribute 进行修饰的属性,它始终使用默认常数值。 用于指定动态默认值的方法可保留此特性提供的设计时功能。

DefaultValueAttribute 适用于设计时方案,且专供内部使用。 不应在其他方案中使用它。

受影响的 API

下表列出了受影响的属性。

properties 更改版本
System.Windows.Forms.DataGridViewRow.Height 预览版 2
System.Windows.Forms.ListBox.ItemHeight 预览版 2