DefaultValueAttribute 已从依赖于默认字体高度的控件属性中删除。
已引入的版本
.NET 8
以前的行为
受影响的属性使用 DefaultValueAttribute修饰,默认值根据假定的应用程序范围的字体进行硬编码。
新行为
从 .NET 8 开始,该属性将从某些属性中删除。 设计时默认值是根据当前字体指标在启动时计算的。
更改类别
此更改是 行为变化。
更改原因
该 DefaultValueAttribute 属性旨在定义 Windows 窗体设计器使用的常量默认值。 过去,此属性用于指定依赖于当前字体高度的某些属性的默认值。 .NET Core 3.1 中引入了新的默认字体,但属性值不会相应地更新。 此外,现在还有一个 API 来修改应用程序字体。 因此,使用动态默认值而不是常量默认值是有意义的。
设计师提供了指定动态默认值的方法,但是,对于用DefaultValueAttribute修饰的属性,它始终会使用常量默认值。 指定动态默认值的方法保留特性提供的设计时功能。
建议的措施
DefaultValueAttribute 适用于设计时方案,且专供内部使用。 不应在其他场景中使用它。
受影响的 API
下表列出了受影响的属性。
资产 | 更改版本 |
---|---|
System.Windows.Forms.DataGridViewRow.Height | 预览版 2 |
System.Windows.Forms.ListBox.ItemHeight | 预览版 2 |