/// <summary>
        /// On pointer Moved
        /// </summary>
        /// <param name="updateArgs"></param>
        internal void OnMoved(XCoreWetStrokeUpdateEventArgs updateArgs)
        {
            InvokeWetStrokeContinuing(updateArgs);

            if (updateArgs.Disposition == XCoreWetStrokeDisposition.Completed)
            {
                InvokeWetStrokeCompleted(updateArgs);
            }
        }
        /// <summary>
        /// On pointer released
        /// </summary>
        /// <param name="updateArgs"></param>
        internal void OnReleased(XCoreWetStrokeUpdateEventArgs updateArgs)
        {
            InvokeWetStrokeStopping(updateArgs);

            if (updateArgs.Disposition == XCoreWetStrokeDisposition.Canceled)
            {
                return;
            }

            InvokeWetStrokeCompleted(updateArgs);
        }
        /// <summary>
        /// On Pointer pressed
        /// </summary>
        /// <param name="updateArgs"></param>
        internal void OnPressed(XCoreWetStrokeUpdateEventArgs updateArgs)
        {
            InvokeWetStrokeStarting(updateArgs);

            if (updateArgs.Disposition == XCoreWetStrokeDisposition.Canceled)
            {
                return;
            }

            InvokeWetStrokeContinuing(updateArgs);

            if (updateArgs.Disposition == XCoreWetStrokeDisposition.Completed)
            {
                InvokeWetStrokeCompleted(updateArgs);
            }
        }
 /// <summary>
 /// Invoke the WetStrokeCanceled event
 /// </summary>
 /// <param name="updateArgs">the update arguments</param>
 protected void InvokeWetStrokeCanceled(XCoreWetStrokeUpdateEventArgs updateArgs)
 {
     WetStrokeCanceled?.Invoke(this, updateArgs);
 }
        /// <summary>
        /// wet stroke cancelled
        /// </summary>
        /// <param name="updateArgs">Core wet stroke update event args</param>
        internal void OnCancelled(XCoreWetStrokeUpdateEventArgs updateArgs)
        {
            updateArgs.Disposition = XCoreWetStrokeDisposition.Canceled;

            InvokeWetStrokeCanceled(updateArgs);
        }
 /// <summary>
 /// Invoke the wet stroke starting event
 /// </summary>
 /// <param name="updateArgs">the update arggs</param>
 protected void InvokeWetStrokeStarting(XCoreWetStrokeUpdateEventArgs updateArgs)
 {
     WetStrokeStarting?.Invoke(this, updateArgs);
 }