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); } }