Dela via


Formulär skalas enligt AutoScaleMode

I PerMonitorV2-mode-appar har Windows Forms använt linjära storlekar (även kallade DPI-skalbara storlekar) som tillhandahålls av Windows för toppnivåfönster, oavsett AutoScaleMode. Den här implementeringen var problematisk när AutoScaleMode.Font skalningsläget användes, där Form skalning ska vara icke-linjär. De underordnade kontrollerna skalas icke-linjärt och är beroende av det teckensnitt som tilldelades till kontrollerna eller underordnade Form kontroller.

Den här ändringen möjliggör WM_GETDPISCALEDSIZE meddelandehantering för objekt på den översta nivån Form . Den använder WM_GETDPISCALEDSIZE för att låta Windows veta att de Form kan behöva icke-linjära storlekar beroende på AutoScaleMode.

Version introducerad

Förhandsversion 1 av .NET 8

Tidigare beteende

Tidigare, i PerMonitorV2-mode-appar, skalades de översta fönstren av Windows och ignorerades AutoScaleMode enligt vad som anges i WinForms-programmet. Den här implementeringen ledde till inkonsekvent skalning mellan Form objekt och deras underordnade kontroller.

Nytt beteende

I PerMonitorV2-mode-appar skalas de översta fönstren (till exempel Formulär) enligt AutoScaleMode. Den här implementeringen säkerställer att de översta fönstren skalas konsekvent med sina underordnade kontroller.

Ändra kategori

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

Orsak till ändringen

Den här ändringen gjordes för att förbättra DPI-upplevelsen för Windows Forms-appar i PerMonitorV2 läge.

Ingen åtgärd krävs.

Berörda API:er

Ej tillämpligt

Se även