1

状況: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のようなものを使用できません。

4

1 に答える 1

0

を使用する必要がありGestureRecognizerますManipulationInertiaStarting。これにより、慣性スクロールを実装するのに十分な情報が得られます。

于 2012-12-10T18:17:57.270 に答える