I am having trouble getting a Horizontal Scrollbar to be displayed for a WPF scroll viewer. The ScrollViewer contains a User Control which dynamically renders its contents based on an input object so may be of variable size - when it renders itself it sets the Width and Height of the User Control to be the correct size.
I've set HorizontalScrollBarVisibility to Visible which should force it to always be displayed but it is never displayed. I have also tried playing with enabling/disabling CanContentScroll but it does not seem to make any difference.
Vertical Scroll Bars work fine without issue.
ScrollViewer scroll = new ScrollViewer();
scroll.HorizontalContentAlignment = HorizontalAlignment.Left;
scroll.VerticalContentAlignment = VerticalAlignment.Top;
scroll.HorizontalScrollBarVisibility = ScrollBarVisibility.Visible;
scroll.CanContentScroll = true;
Grid.SetRow(scroll, 1);
GalaxyViewer viewer = new GalaxyViewer(g);
viewer.HorizontalAlignment = HorizontalAlignment.Left;
viewer.VerticalAlignment = VerticalAlignment.Top;
viewer.HideShips();
viewer.IsEditable = this.IsEditable;
viewer.GalaxyEdited += this._galaxyEditedHandler;
if (this._activePlayer > 0 && !this.IsEditable) viewer.ShowShipsForPlayer(this._activePlayer);
scroll.Content = viewer;
ScrollViewer.SetCanContentScroll(viewer, true);
ScrollViewer.SetHorizontalScrollBarVisibility(viewer, ScrollBarVisibility.Visible);
scroll.UpdateLayout();
grid.Children.Add(scroll);
Anyone have any ideas/solutions for this?