如何检测滚动查看器是否在winrt中到达底部

我想知道什么是检测ScrollViewer是否到达底部,右边等的最佳方法。

我想我可以通过使用PointerWheelChanged用于鼠标和ManipulationDelta进行触摸来实现这一点。 在这些事件处理程序中,我可以记录Horizo​​ntalOffset以找出滚动器何时到达结尾。 但我认为可能有更好的方法来做到这一点。

我发现了这篇文章 。 但压缩视觉状态似乎不适用于winrt。 不会调用CurrentStateChanging事件方法。

我还检查了另一篇文章 。 但它只适用于滚动条,而不是通用方法。

谁知道解决这个问题的最佳方法是什么?

XAML:

   

代码背后:

 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); } } 

对于UWP,我得到了这样的

    private void scroll_ViewChanged(object sender, ScrollViewerViewChangedEventArgs e) { var scrollViewer = (ScrollViewer)sender; if (scrollViewer.VerticalOffset == scrollViewer.ScrollableHeight) btnNewUpdates.Visibility = Visibility.Visible; } private void btnNewUpdates_Click(object sender, RoutedEventArgs e) { itemGridView.ScrollIntoView(itemGridView.Items[0]); btnNewUpdates.Visibility = Visibility.Collapsed; }