protected virtual void OnUIDragMove(object sender, MouseEventArgs e) { double canvasHairWidth; if ((!e.Handled && (e.Source is UIElement)) && ((this.State == TransactedToolState.Drawing) && this.mouseInputDrawingAgent.IsActive)) { IList <PointDouble> intermediatePoints = e.GetIntermediatePoints(this.UI); canvasHairWidth = base.CanvasView.CanvasHairWidth; IList <BrushInputPoint> inputPoints = intermediatePoints.Select <PointDouble, PointDouble>(pt => BrushToolBase <TDerived, TChanges, TUI> .GetMouseCenterPt(pt, canvasHairWidth)).Select <PointDouble, BrushInputPoint>(pt => new BrushInputPoint(pt)); TChanges changes = this.mouseInputDrawingAgent.TransactionToken.Changes; TChanges local2 = this.CreateChanges(changes, inputPoints); this.mouseInputDrawingAgent.TransactionToken.Changes = local2; } }