WinRT,C#,画布和子级惯性滚动

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WinRT,C#,画布和子级惯性滚动相关的知识,希望对你有一定的参考价值。

情况:WinRT应用程序,画布在主页上。画布上有许多孩子。当用户点击画布并移动指针时,我正在尝试滚动它们。一切正常,但我不知道如何模拟惯性滚动。

代码:

private GestureRecognizer gr = new GestureRecognizer();
public MainPage()
        {
            this.InitializeComponent();


            gr.GestureSettings = GestureSettings.ManipulationTranslateInertia;
            gr.AutoProcessInertia = true;
        }

我已经订阅了一些画布活动:

//Pressed
private void Canvas_PointerPressed(object sender, PointerRoutedEventArgs e)
        {
            if (e.Pointer.PointerDeviceType == Windows.Devices.Input.PointerDeviceType.Touch)
            {


                var _ps = e.GetIntermediatePoints(cnvMain);
                if (_ps != null && _ps.Count > 0)
                {
                    gr.ProcessDownEvent(_ps[0]);
                    e.Handled = true;

                    Debug.WriteLine("Pressed");
                }
                initialPoint = e.GetCurrentPoint(cnvMain).Position.X;
            }
        }



//Released
private void Canvas_PointerReleased(object sender, PointerRoutedEventArgs e)
        {
            if (e.Pointer.PointerDeviceType == Windows.Devices.Input.PointerDeviceType.Touch)
            {

                var _ps = e.GetIntermediatePoints(cnvMain);
                if (_ps != null && _ps.Count > 0)
                {
                    gr.ProcessUpEvent(_ps[0]);
                    e.Handled = true;

                    Debug.WriteLine("Released");

            }
        }

// Moved
private void Canvas_PointerMoved(object sender, PointerRoutedEventArgs e)
        {

            if (gr.IsActive || gr.IsInertial)
            {

                                   gr.ProcessMoveEvents(e.GetIntermediatePoints(null));


// Here is my code for translation of children
                e.Handled = true;
            }
        }

所以,我可以翻译画布上的孩子,但是没有惯性。如何启用它?

不幸的是,由于特定的数据,我无法在此应用程序中使用GridView或ListView之类的东西。

答案

您应将GestureRecognizerGestureRecognizer一起使用。这应该为您提供足够的信息来实现惯性滚动。

以上是关于WinRT,C#,画布和子级惯性滚动的主要内容,如果未能解决你的问题,请参考以下文章

在一个查询中保存父级和子级(子级对父级有空值引用)

Firebase 规则通配符和子级比较

找到堆的父级和子级的方程式背后的直觉是啥?

php 将自定义模板分配给具有特定类别(和子级)的帖子。

在 Laravel 中为父级和子级创建活动类

父级暂停和子级恢复后雪花子任务未运行