/// <summary>
        /// 呈递修改的默认实现,本方法将呈递撤销栈中的修改操作,并清空撤销/重做栈;
        /// </summary>
        /// <param name="canvasContext"></param>
        protected override void OnCommit()
        {
            if (CanvasContext == null)
            {
                return;
            }

            //若撤销栈为空,则不进行呈递修改操作;
            if (UndoDrawObjects.Count == 0)
            {
                return;
            }

            if (CanvasContext.ActiveLayer == null)
            {
                return;
            }

            var commitParams = new UniqueTypeEditToolCommitParams(new List <DrawObject>(UndoDrawObjects.ToArray()))
            {
                AppliedLayer = CanvasContext.ActiveLayer
            };

            OnCommitParams(commitParams);

            if (commitParams.Cancel)
            {
                return;
            }

            if (commitParams.AppliedLayer == null)
            {
                return;
            }

            if (commitParams.AddedDrawObjects.Count == 0)
            {
                return;
            }

            //将撤销栈拷贝后呈递事务;
            var addedDrawObjects = commitParams.AddedDrawObjects.ToArray();
            var appliedLayer     = commitParams.AppliedLayer;

            appliedLayer.AddDrawObjects(addedDrawObjects);

            var transAction = new StandardEditTransaction(
                () => {
                appliedLayer.RemoveDrawObjects(addedDrawObjects);
            },
                () => {
                appliedLayer.AddDrawObjects(addedDrawObjects);
            }
                );

            CommitTransaction(transAction);

            //清除撤销/撤销栈;
            UndoDrawObjects.Clear();
            RedoDrawObjects.Clear();
        }
 protected virtual void OnCommitParams(UniqueTypeEditToolCommitParams commitParams)
 {
 }