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.
Rekommenderad åtgärd
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 |