コード例 #1
0
        void InkingArea_PointerReleased(object sender, Windows.UI.Xaml.Input.PointerRoutedEventArgs e)
        {
            var pointerPoint = e.GetCurrentPoint(InkingArea);

            if (pointerId == (int)pointerPoint.PointerId)
            {
                pointerId = -1; // reset pointerId so that other pointers may enter live rendering mode

                var rect = inkManager.ProcessPointerUp(pointerPoint);
                switch (inkManager.Mode)
                {
                case Windows.UI.Input.Inking.InkManipulationMode.Inking:
                    renderer.ExitLiveRendering(pointerPoint);
                    renderer.AddInk(inkManager.GetStrokes()[inkManager.GetStrokes().Count - 1]);     // Add last stroke that was created to the Bezier render
                    break;

                case Windows.UI.Input.Inking.InkManipulationMode.Selecting:
                    renderer.ExitLiveRendering(pointerPoint);

                    if (inkManager.AnySelected())
                    {
                        // Something has been selected

                        // Notify the renderer to update the selection
                        renderer.UpdateSelection();

                        // Resize SelectionRect and register event handlers to move the selection
                        Windows.UI.Xaml.Controls.Canvas.SetLeft(SelectionRect, rect.Left);
                        Windows.UI.Xaml.Controls.Canvas.SetTop(SelectionRect, rect.Top);
                        SelectionRect.Width            = rect.Width;
                        SelectionRect.Height           = rect.Height;
                        SelectionRect.ManipulationMode = Windows.UI.Xaml.Input.ManipulationModes.TranslateX | Windows.UI.Xaml.Input.ManipulationModes.TranslateY;
                    }
                    break;
                }

                rootPage.NotifyUser(" ", SDKTemplate.NotifyType.StatusMessage);
            }
        }