检测ListView何时"向上"或"向下"滚动?Windows Phone 8.1 ListView

Bay*_*ern 9 c# listview scrollbar windows-phone-8.1

嘿我怎样才能检测到我的ListView向上或向下滚动?

我有这个:

 private void MainPage_OnLoaded(object sender, RoutedEventArgs e)
 {
     var scrollViewer = MyListView.GetFirstDescendantOfType<ScrollViewer>();
     scrollViewer.ViewChanged += BarScroll;
 }

 private void BarScroll(object sender, ScrollViewerViewChangedEventArgs e)
 {
     var scrollbars = (sender as ScrollViewer).GetDescendantsOfType<ScrollBar>().ToList();
     var verticalBar = scrollbars.FirstOrDefault(x => x.Orientation == Orientation.Vertical);

     if (verticalBar) (/*If ListView is scrolled up*/)
     {
        //Code when the ListView is scrolled up
     }
     else (/*If ListView is scrolled down*/)
     {
        //Code for when the ListView is scrolled down
     } 
 }
Run Code Online (Sandbox Code Playgroud)

我需要对"verticalBar.Height> verticalBar.ActualHeight"做些什么吗?

小智 6

以这种方式修改BarScroll处理程序并将私有变量添加到主类以保持旧的scroll offset值:

    private double offset;

    private void BarScroll(object sender, ScrollViewerViewChangedEventArgs e)
    {
        double newOffset = (sender as ScrollViewer).VerticalOffset;
        if ( newOffset > offset )
        {
            //Logic for scroll down
        }
        else if ( newOffset < offset )
        {
            //Logic for scroll up
        }

        offset = newOffset;
    }
Run Code Online (Sandbox Code Playgroud)