我目前正在构建一个带有滚动查看器的Windows Phone 8应用程序,其中包含一些内容。我希望当用户滚动完成时,scrollviewer会自动滚动到底部或顶部。
用户应该能够按照他/她喜欢的方式上下滚动内容,但是当他/她完成时,它应该滚动到底部或顶部,具体取决于更接近的内容。也许这张图片有助于解释我的意思:
我尝试覆盖MouseLeave事件,但结果不稳定而且不是很顺利:
private void mainScrollViewer_MouseLeave(object sender, System.Windows.Input.MouseEventArgs e)
{
//Scrollviewer dazu brigen, jeweils zum einen oder anderen ende der Ansicht zu springen, aber nicht mittendrin stehen zu bleiben
if (mainScrollViewer.VerticalOffset > (ContentPanel.ActualHeight/2))
{
mainScrollViewer.ScrollToVerticalOffset(mainScrollViewer.ActualHeight);
}
else
{
mainScrollViewer.ScrollToVerticalOffset(0);
}
}
我在这里遗漏了什么吗?有一个简单的方法吗?如果不是......最好的方法是什么?
感谢您的帮助,我真的很感激!
答案 0 :(得分:1)
不,没有一种简单的方法可以做这样的事情。
由于ScrollToVerticalOffset
无法顺利制作动画,因此您最好的选择是为您执行此操作的自定义控件。有关示例,请参阅http://sviluppomobile.blogspot.co.uk/2013/04/smooth-scrolling-content-on-windows.html