另一种选择是在内容周围添加箭头按钮。我们已经在触摸屏信息亭上使用了这一点,效果非常好。它的工作量更大,但可以制成自定义控件。我唯一的代码支持垂直滚动。
添加水平滚动也应该很容易。在下面的代码中,滚动条的上方和下方有两个按钮,分别称为 Less 和 More。
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();
}