使滚动查看器棒/捕捉开始或结束

时间:2014-01-09 16:46:57

标签: c# xaml windows-phone-8

我目前正在构建一个带有滚动查看器的Windows Phone 8应用程序,其中包含一些内容。我希望当用户滚动完成时,scrollviewer会自动滚动到底部或顶部。

用户应该能够按照他/她喜欢的方式上下滚动内容,但是当他/她完成时,它应该滚动到底部或顶部,具体取决于更接近的内容。也许这张图片有助于解释我的意思:

enter image description here

我尝试覆盖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);
        }
    }

我在这里遗漏了什么吗?有一个简单的方法吗?如果不是......最好的方法是什么?

感谢您的帮助,我真的很感激!

1 个答案:

答案 0 :(得分:1)

不,没有一种简单的方法可以做这样的事情。

由于ScrollToVerticalOffset无法顺利制作动画,因此您最好的选择是为您执行此操作的自定义控件。有关示例,请参阅http://sviluppomobile.blogspot.co.uk/2013/04/smooth-scrolling-content-on-windows.html