diff --git a/src/System.Windows.Forms/src/System/Windows/Forms/ContainerControl.cs b/src/System.Windows.Forms/src/System/Windows/Forms/ContainerControl.cs index c41c952d82d..374731afd82 100644 --- a/src/System.Windows.Forms/src/System/Windows/Forms/ContainerControl.cs +++ b/src/System.Windows.Forms/src/System/Windows/Forms/ContainerControl.cs @@ -688,7 +688,12 @@ internal void FocusActiveControlInternal() private SizeF GetParentAutoScaleFactor() { Control parentControl = Parent; - while (parentControl is not null and not ContainerControl) + + // Traverse through parent hierarchy until we get a ContainerControl whose AutoScaleMode is not Inherit. + // AutoscaleFactor from this parent is used to scale the child controls within its hierarchy. + while (parentControl is not null + && (parentControl is not ContainerControl containerControl + || containerControl.AutoScaleMode == AutoScaleMode.Inherit)) { parentControl = parentControl.Parent; }