У меня возникли проблемы с отображением горизонтальной полосы прокрутки для средства просмотра прокрутки WPF. ScrollViewer
содержит пользовательский элемент управления, который динамически отображает его содержимое на основе входного объекта, поэтому может иметь переменный размер - когда он отображает себя, он устанавливает правильные размеры ширины и высоты пользовательского элемента управления.
Я установил HorizontalScrollBarVisibility
на Visible, что должно заставить его всегда отображаться, но никогда не отображается. Я также пытался играть с включением / отключением CanContentScroll
, но, похоже, это не имеет значения.
Вертикальные полосы прокрутки работают без проблем.
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);
У кого-нибудь есть идеи / решения для этого?