WP7 ScrollViewer просто не работает - PullRequest
0 голосов
/ 24 декабря 2011

Мое намерение простое.Создайте своего рода панель, где пользователь может прокручивать множество элементов управления в этой конкретной панели.Элементами управления на этой панели могут быть кнопки, изображения или метки ... что угодно.

Дело в том ... Если я сделаю ScrollViewer Vertical, он прокручивается, но не показывает все элементы управления внутри себяИ он не останется в том месте, где я его прокручивал.И если я сделаю его горизонтальным, как я хочу, он вообще не прокрутится ... Ни одного бита.

Ниже мой код: ПОЖАЛУЙСТА, ПОМОГИТЕ!

Я добавил несколько кнопок, чтобы протестировать все это.Любая помощь высоко ценится.Спасибо.

Ответы [ 2 ]

2 голосов
/ 24 декабря 2011

Удалите атрибут Height из StackPanel.Вы заставляете внутреннюю панель StackPanel обрезать ее содержимое.Поскольку внутренняя панель StackPanel меньше (97), чем ScrollViewer (118), ScrollViewer ничего не прокручивает.ScrollViewer ожидает, что его содержимое будет больше, чем само ScrollViewer.

0 голосов
/ 03 августа 2012

Я прослушал SizeChangedEvent в сетке, содержащей панель стека, а затем соответствующим образом отрегулировал высоту ScrollViewer. Вот, например, я просто делаю это половиной размера экрана. Это не идеально, но это работает.

private void ContentPanel_SizeChanged(object sender, SizeChangedEventArgs e)
{
        // Resize the scroll view if the stackpanel is bigger, additional 70 for app bar
        if (e.NewSize.Height >
                (System.Windows.Application.Current.Host.Content.ActualHeight - 70))
        {
                ContentScrollViewer.VerticalScrollBarVisibility = ScrollBarVisibility.Visible;
                ContentScrollViewer.Height = System.Windows.Application.Current.Host.Content.ActualHeight / 2;
        }
}
...