Ответ 1
Другой вариант - добавить кнопки со стрелками вокруг содержимого. Мы использовали это для большого эффекта на киоске с сенсорным экраном. Это немного больше работы, но может быть сделано в пользовательский элемент управления. Единственный код, который поддерживает вертикальная прокрутка.
Также должно быть достаточно легко добавить горизонтальную прокрутку. В приведенном ниже коде есть две кнопки, называемые "Меньше и выше" выше и ниже скроллера.
double Epsilon = .001;
private void Scroller_ScrollChanged(object sender, ScrollChangedEventArgs e)
{
if ( Scroller.ScrollableHeight > 0 ) {
Less.Visibility = Math.Abs(Scroller.VerticalOffset - 0) > Epsilon ? Visibility.Visible : Visibility.Hidden;
More.Visibility = Scroller.VerticalOffset + Scroller.ViewportHeight < Scroller.ExtentHeight ? Visibility.Visible : Visibility.Hidden;
} else {
Less.Visibility = More.Visibility = Visibility.Hidden;
}
if (Scroller.ExtentHeight / Scroller.ViewportHeight > 2)
{
SearchPanel.Visibility = Visibility.Visible;
}
}
private void Less_Click(object sender, RoutedEventArgs e)
{
Sounds.Click();
Scroller.PageUp();
}
private void More_Click(object sender, RoutedEventArgs e)
{
Sounds.Click();
Scroller.PageDown();
}