Dela via


DefaultValueAttribute har tagits bort från vissa egenskaper

DefaultValueAttribute har tagits bort från kontrollegenskaper som är beroende av standardteckensnittets höjd.

Version introducerad

.NET 8

Tidigare beteende

De berörda egenskaperna har dekorerats med DefaultValueAttribute, och standardvärdena hårdkodades enligt ett antaget teckensnitt för hela programmet.

Nytt beteende

Från och med .NET 8 tas attributet bort från vissa egenskaper. Standardvärden för designtid beräknas vid start baserat på de aktuella teckensnittsmåtten.

Ändra kategori

Den här ändringen är en beteendeförändring.

Orsak till ändringen

Attributet DefaultValueAttribute är utformat för att definiera konstanta standardvärden som används av Windows Forms-designern. Tidigare användes det här attributet för att ange standardvärden för vissa egenskaper som är beroende av den aktuella teckensnittshöjden. Ett nytt standardteckensnitt introducerades i .NET Core 3.1, men attributvärdena uppdaterades inte i enlighet med detta. Dessutom finns det nu ett API för att ändra programteckensnitt. Därför är det klokt att använda dynamiska standardvärden i stället för konstanta värden.

Designern tillhandahåller metoder för att ange dynamiska standardvärden, men för egenskaper som är dekorerade med DefaultValueAttributeanvänder den alltid det konstanta standardvärdet i stället. Metoderna för att ange dynamiska standardvärden bevarar de designtidsfunktioner som tillhandahålls av attributet.

DefaultValueAttribute är avsedd för intern användning i designtidsscenarier. Du bör inte använda den i andra scenarier.

Berörda API:er

I följande tabell visas de berörda egenskaperna.

Property Ändra version
System.Windows.Forms.DataGridViewRow.Height Förhandsversion 2
System.Windows.Forms.ListBox.ItemHeight Förhandsversion 2