Горизонтальная полоса прокрутки для WPF ScrollViewer никогда не отображается - PullRequest
0 голосов
/ 07 декабря 2010

У меня возникли проблемы с отображением горизонтальной полосы прокрутки для средства просмотра прокрутки 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);

У кого-нибудь есть идеи / решения для этого?

Ответы [ 2 ]

1 голос
/ 18 ноября 2015
 WPF Layout Controls - ScrollViewer

В большинстве случаев мы не знаем о размере элемента управления, который будет отображаться в экране.Также есть случай сделать разрешение продукта зависимым, так как это является основным свойством wpf.Так вот почему в WPF есть элемент управления, т.е. ScrollViewer (свойство Attached), который может разрешать прокрутку этого содержимого всякий раз, когда содержимое выходит в область отображения.1005 *

Для получения подробной информации, пожалуйста, посетите: http://wpfbugs.blogspot.in/2014/02/wpf-layout-controls-scrollviewer.html

0 голосов
/ 07 декабря 2010

Обнаружил причину проблемы - отображалась полоса прокрутки, но я автоматически изменял размеры элемента управления, содержащего средство просмотра прокрутки, при изменении размера окна, и это означало, что горизонтальная полоса прокрутки отсекалась от дисплея

...