检测何时滚动 ListView "up" 或 "down"? Windows Phone 8.1 列表视图
Detect when ListView is scrolled "up" or "down"? Windows Phone 8.1 ListView
嘿,我如何检测我的 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
}
}
我需要用 "verticalBar.Height > verticalBar.ActualHeight" 做些什么吗?
以这种方式修改您的 BarScroll 处理程序并将私有变量添加到您的主 class 以保持滚动偏移的旧值:
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;
}
嘿,我如何检测我的 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
}
}
我需要用 "verticalBar.Height > verticalBar.ActualHeight" 做些什么吗?
以这种方式修改您的 BarScroll 处理程序并将私有变量添加到您的主 class 以保持滚动偏移的旧值:
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;
}