From 531e3b2f09ebf2e6df44e6803e7fa06073ba2c3d Mon Sep 17 00:00:00 2001
From: lixiaojun <1287241240@qq.com>
Date: 星期四, 08 五月 2025 15:15:42 +0800
Subject: [PATCH] 新增绘制状态,用于标识当前编辑控件的状态

---
 Yw.WpfUI.Hydro.L3d.Core/03-draw/00-core/01-initial/DrawInitialHelper.cs |   61 ++++++++++++++++++++++++++++++
 1 files changed, 61 insertions(+), 0 deletions(-)

diff --git a/Yw.WpfUI.Hydro.L3d.Core/03-draw/00-core/01-initial/DrawInitialHelper.cs b/Yw.WpfUI.Hydro.L3d.Core/03-draw/00-core/01-initial/DrawInitialHelper.cs
index a90213e..56851e6 100644
--- a/Yw.WpfUI.Hydro.L3d.Core/03-draw/00-core/01-initial/DrawInitialHelper.cs
+++ b/Yw.WpfUI.Hydro.L3d.Core/03-draw/00-core/01-initial/DrawInitialHelper.cs
@@ -27,6 +27,10 @@
         /// 宸ヤ綔闈㈡澘鏀瑰彉浜嬩欢
         /// </summary>
         public event Action<WorkPanelL3d> WorkPanelChangedEvent;
+        /// <summary>
+        /// 缁樺埗鐘舵�佹敼鍙樹簨浠�
+        /// </summary>
+        public event Action<eDrawStatusL3d> DrawStatusChangedEvent;
 
         #endregion
 
@@ -588,6 +592,63 @@
 
         #endregion
 
+        #region 缁樺埗鐘舵��
+
+        /// <summary>
+        /// 缁樺埗鐘舵��
+        /// </summary>
+        public eDrawStatusL3d DrawStatus
+        {
+            get { return _drawStatus; }
+            private set
+            {
+                if (_drawStatus != value)
+                {
+                    _drawStatus = value;
+                    OnDrawStatusChanged();
+                }
+            }
+        }
+        private eDrawStatusL3d _drawStatus = eDrawStatusL3d.Normal;
+
+        //缁樺埗鐘舵�佹仮澶嶆柟娉�
+        private Func<bool> _drawStatusReaction = null;
+
+        /// <summary>
+        /// 娉ㄥ唽缁樺埗鐘舵��
+        /// </summary>
+        public void RegistDrawStatus(eDrawStatusL3d drawStatus, Func<bool> reaction)
+        {
+            if (this.DrawStatus != drawStatus)
+            {
+                if (_drawStatusReaction != null)
+                {
+                    if (_drawStatusReaction())
+                    {
+                        ResetDrawStatus();
+                    }
+                }
+            }
+            this.DrawStatus = drawStatus;
+            _drawStatusReaction = reaction;
+        }
+
+        /// <summary>
+        /// 閲嶇疆缁樺埗鐘舵��
+        /// </summary>
+        public void ResetDrawStatus()
+        {
+            this.DrawStatus = eDrawStatusL3d.Normal;
+        }
+
+        //澶勭悊缁樺埗鐘舵�佹敼鍙�
+        private void OnDrawStatusChanged()
+        {
+            this.DrawStatusChangedEvent?.Invoke(DrawStatus);
+        }
+
+        #endregion
+
 
         /// <summary>
         /// 閲婃斁

--
Gitblit v1.9.3