diff --git a/src/GitHub.UI/Controls/ScrollingVerticalStackPanel.cs b/src/GitHub.UI/Controls/ScrollingVerticalStackPanel.cs index 5e423ba8c1..5ca669ca68 100644 --- a/src/GitHub.UI/Controls/ScrollingVerticalStackPanel.cs +++ b/src/GitHub.UI/Controls/ScrollingVerticalStackPanel.cs @@ -179,7 +179,25 @@ protected override Size ArrangeOverride(Size finalSize) { var isFixed = GetIsFixed(child); var x = isFixed ? 0 : -HorizontalOffset; - var childRect = new Rect(x, y, child.DesiredSize.Width, child.DesiredSize.Height); + var width = child.DesiredSize.Width; + + if (isFixed) + { + switch (child.HorizontalAlignment) + { + case HorizontalAlignment.Stretch: + width = finalSize.Width; + break; + case HorizontalAlignment.Right: + x = finalSize.Width - child.DesiredSize.Width; + break; + case HorizontalAlignment.Center: + x = (finalSize.Width - child.DesiredSize.Width) / 2; + break; + } + } + + var childRect = new Rect(x, y, width, child.DesiredSize.Height); child.Arrange(childRect); y += child.DesiredSize.Height;