void StrokeUpdated(StrokeGestureRecognizer strokeGesture) { if (strokeGesture == pencilStrokeRecognizer) { lastSeenPencilInteraction = DateTime.Now.Ticks; } var state = strokeGesture.State; Stroke stroke = null; if (state != Cancelled) { stroke = strokeGesture.Stroke; if (state == Began || (state == Ended && strokeCollection.ActiveStroke == null)) { strokeCollection.ActiveStroke = stroke; leftRingControl.CancelInteraction(); } } else { strokeCollection.ActiveStroke = null; } if (stroke != null) { if (state == Ended) { if (strokeGesture == pencilStrokeRecognizer) { // Make sure we get the final stroke update if needed. stroke.ReceivedAllNeededUpdatesBlock = () => { ReceivedAllUpdatesForStroke(stroke); }; } strokeCollection.TakeActiveStroke(); } } cgView.StrokeCollection = strokeCollection; }