我使用此代码查看滚动查看器是否位于页面底部。
private void OnScrollViewerUpdated(object sender, EventArgs e)
{
var verticalOffset = sv.VerticalOffset;
var maxVerticalOffset = sv.ExtentHeight - sv.ViewportHeight;
if (maxVerticalOffset < 0 ||
verticalOffset == maxVerticalOffset)
{
swipe_next();
}
}
如何查看滚动查看器是否位于页面顶部?如果滚动查看器位于页面底部,是否可以转到顶部?
答案 0 :(得分:0)
根据MSDN(http://msdn.microsoft.com/en-us/library/system.windows.controls.scrollviewer.aspx),您可以使用ScrollToVerticalOffset(double d)
所以你的方法调用应该是这样的:
//scroll to top:
sv.ScrollToVerticalOffset(0);
如果垂直偏移量为0是视口的顶部,那么您可以通过使用以下内容来检查:
if(sv.VerticalOffset == 0)
{
//...
}
答案 1 :(得分:0)
您可能还需要保留已按下指针的轨道以及scrollviewer
操作已完成事件。
这只是一个示例,请尝试使用此代码段。
// Constructor
public MainPage()
{
InitializeComponent();
ListVerticalOffsetProperty = DependencyProperty.Register("ListVerticalOffset", typeof(double), typeof(MainPage), new PropertyMetadata(OnListVerticalOffsetChanged));
YourScrollViewer.Loaded += YourScrollViewer_Loaded;
}
void YourScrollViewer_Loaded(object sender, RoutedEventArgs e)
{
var binding = new Binding
{
Source = YourScrollViewer,
Path = new PropertyPath("VerticalOffset"),
Mode = BindingMode.OneWay
};
SetBinding(ListVerticalOffsetProperty, binding);
}
private void OnListVerticalOffsetChanged(DependencyObject obj, DependencyPropertyChangedEventArgs e)
{
var atBottom = YourScrollViewer.VerticalOffset >= YourScrollViewer.ScrollableHeight;
if (atBottom) MessageBox.Show("End");
}
public readonly DependencyProperty ListVerticalOffsetProperty;
public double ListVerticalOffset
{
get { return (double)GetValue(ListVerticalOffsetProperty); }
set { SetValue(ListVerticalOffsetProperty, value); }
}
也要查看here。