From 9d1660270272180cd71147d6ddd53d1382643d2e Mon Sep 17 00:00:00 2001
From: wenxiangchao <wenxiangchao@ihengxin.com.cn>
Date: 星期一, 02 十一月 2026 18:00:14 +0800
Subject: [PATCH] merge: 并入远程 Initial commit 作为历史根节点

---
 Plugin.DODriverControl/DOControl.xaml.cs |  141 +++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 141 insertions(+), 0 deletions(-)

diff --git a/Plugin.DODriverControl/DOControl.xaml.cs b/Plugin.DODriverControl/DOControl.xaml.cs
new file mode 100644
index 0000000..78c1241
--- /dev/null
+++ b/Plugin.DODriverControl/DOControl.xaml.cs
@@ -0,0 +1,141 @@
+锘縰sing CommunityToolkit.Mvvm.ComponentModel;
+using HMI.Base;
+using HMI.UI.DpUtil;
+using HMI.UI.MDI;
+using System.ComponentModel;
+using System.IO;
+using System.Windows;
+
+namespace Plugin.DODriverControl
+{
+    /// <summary>
+    /// DOControl.xaml 鐨勪氦浜掗�昏緫
+    /// </summary>
+    [ObservableObject]
+    public partial class DOControl : SimpleMaskControl
+    {
+        public DOControl()
+        {
+            this.DataContext = this;
+            InitializeComponent();
+        }
+
+        [ObservableProperty]
+        private string workspaceSetting;
+
+        public override void InitFinish()
+        {
+            WorkspaceSetting = Path.Combine(BaseFolder, "Workspace.xml");
+            base.InitFinish();
+        }
+
+        private List<SingleControl> controls = new List<SingleControl>();
+
+        private List<CanvasPosition> InitGridSize()
+        {
+            List<CanvasPosition> result = new List<CanvasPosition>();
+            result.Add(new CanvasPosition
+            {
+                Left = 0,
+                Top = 0,
+                Width = 0.1 * ActualWidth,
+                Height = 0.5 * ActualHeight
+            });
+            result.Add(new CanvasPosition
+            {
+                Left = 0.1 * ActualWidth + 2,
+                Top = 0,
+                Width = 0.5 * ActualWidth - 4,
+                Height = ActualHeight,
+            });
+
+            result.Add(new CanvasPosition
+            {
+                Left = 0.6 * ActualWidth + 2,
+                Top = 0,
+                Width = 0.4 * ActualWidth - 2,
+                Height = 0.5 * ActualHeight - 2
+            });
+
+            result.Add(new CanvasPosition
+            {
+                Left = 0,
+                Top = 0.5 * ActualHeight + 2,
+                Width = 0.1 * ActualWidth - 2,
+                Height = 0.5 * ActualHeight - 2
+            });
+
+            result.Add(new CanvasPosition
+            {
+                Left = 0.6 * ActualWidth + 2,
+                Top = 0.5 * ActualHeight + 2,
+                Width = 0.4 * ActualWidth - 2,
+                Height = 0.5 * ActualHeight - 2
+            });
+
+            return result;
+        }
+
+        public override void Active()
+        {
+            foreach (var control in controls)
+            {
+                control.Active();
+            }
+            base.Active();
+        }
+
+        public override void DeActive()
+        {
+            foreach (var control in controls)
+            {
+                control.DeActive();
+            }
+            base.DeActive();
+        }
+
+        public override void OnClose(object sender, CancelEventArgs e)
+        {
+            Dispatcher.Invoke(() =>
+            {
+                foreach (var control in controls)
+                {
+                    control.Close();
+                }
+            });
+            base.DoClose(sender, e);
+        }
+
+        private void LoadSingleControl()
+        {
+            var ps = InitGridSize();
+            var control = new SingleControl("DIO", BaseFolder)
+            {
+                log = log
+            };
+            controls.Add(control);
+            workspace.AddInnerWindow(control.name, new InnerWindow()
+            {
+                Title = control.name,
+                Content = control
+            });
+
+            //var control2 = new SingleControl("DIO2", BaseFolder)
+            //{
+            //    log = log
+            //};
+            //controls.Add(control2);
+            //workspace.AddInnerWindow(control2.name, new InnerWindow()
+            //{
+            //    Title = control2.name,
+            //    Content = control2
+            //});
+        }
+
+        private void PluginMaskControl_Loaded(object sender, RoutedEventArgs e)
+        {
+            LoadSingleControl();
+            Loaded -= PluginMaskControl_Loaded;
+        }
+    }
+}

--
Gitblit v1.9.1