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 |