我想知道检测 ScrollViewer 是否到达底部、右侧等的最佳方法是什么。
我想我可以通过使用 PointerWheelChanged 鼠标和 ManipulationDelta 触摸来实现这一点。在这些事件处理程序中,我可以记录 HorizontalOffset 以找出滚动条何时到达末尾。但我认为可能有更好的方法来做到这一点。
我找到了这个article。但压缩视觉状态似乎在 winrt 中不起作用。未调用 CurrentStateChanging 事件方法。
我还检查了另一个article。但它只适用于滚动条,而不是通用方法。
有谁知道解决这个问题的最佳方法是什么?
XAML:
<ScrollViewer
x:Name="sv"
ViewChanged="OnScrollViewerViewChanged">
<Rectangle
x:Name="rect"
Width="2000"
Height="2000"
Fill="Yellow"
Margin="10" />
</ScrollViewer>
背后代码:
private void OnScrollViewerViewChanged(object sender, ScrollViewerViewChangedEventArgs e)
{
var verticalOffset = sv.VerticalOffset;
var maxVerticalOffset = sv.ScrollableHeight; //sv.ExtentHeight - sv.ViewportHeight;
if (maxVerticalOffset < 0 ||
verticalOffset == maxVerticalOffset)
{
// Scrolled to bottom
rect.Fill = new SolidColorBrush(Colors.Red);
}
else
{
// Not scrolled to bottom
rect.Fill = new SolidColorBrush(Colors.Yellow);
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)