DefaultValueAttribute 已從某些屬性移除
已從相依於預設字型高度的控制項屬性中移除 DefaultValueAttribute。
導入的版本
.NET 8
先前的行為
受影響的屬性以 DefaultValueAttribute 裝飾,預設值則是根據假設整個應用程式的字型進行硬式編碼。
新的行為
從 .NET 8 開始,該屬性 (attribute) 會從特定屬性中移除。 設計階段的預設值會根據目前的字型度量在啟動時計算。
變更類別
此變更為行為變更。
變更原因
DefaultValueAttribute 屬性的設計目的是定義 Windows Forms 設計工具所使用的常數預設值。 過去,此屬性是用來指定相依於目前字型高度的特定屬性預設值。 .NET Core 3.1 導入新的預設字型,但屬性值卻未隨之更新。 此外,現在有 API 可以修改應用程式字型。 因此,使用動態預設值而非常數預設值是合理的做法。
設計工具提供可指定動態預設值的方法,不過,對於以 DefaultValueAttribute 裝飾的屬性,設計工具一律改用常數預設值。 指定動態預設值的方法會保留屬性所提供的設計階段功能。
建議的動作
DefaultValueAttribute 僅供設計階段案例的內部使用。 您不應該在其他案例中使用。
受影響的 API
下表列出受影響的屬性。
屬性 | 變更版本 |
---|---|
System.Windows.Forms.DataGridViewRow.Height | Preview 2 |
System.Windows.Forms.ListBox.ItemHeight | Preview 2 |