/// <summary> /// Pre-Select the object which user taps on. /// </summary> /// <param name="point"></param> /// <param name="tappedStroke"></param> /// <param name="tappedElement"></param> private void TapSelectObject(Point point, out Stroke tappedStroke, out UIElement tappedElement) { tappedStroke = null; tappedElement = null; StrokeCollection hitTestStrokes = InkCanvas.Strokes.HitTest(point, 5.0d); if (hitTestStrokes.Count > 0) { tappedStroke = hitTestStrokes[hitTestStrokes.Count - 1]; } else { GeneralTransform transformToInnerCanvas = InkCanvas.TransformToVisual(InkCanvas.InnerCanvas); Point pointOnInnerCanvas = transformToInnerCanvas.Transform(point); // Try to find out whether we have a pre-select object. tappedElement = InkCanvas.InnerCanvas.HitTestOnElements(pointOnInnerCanvas); } }