From 9d05b4e5a7b667afb6d13cbcb460e377c175c170 Mon Sep 17 00:00:00 2001
From: xcd <834800634@qq.com>
Date: 星期三, 01 七月 2020 19:44:26 +0800
Subject: [PATCH] 添加M071主界面和标签指示,

---
 src/Bro.M071.Process/UI/M071_MainForm.cs |  109 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 108 insertions(+), 1 deletions(-)

diff --git a/src/Bro.M071.Process/UI/M071_MainForm.cs b/src/Bro.M071.Process/UI/M071_MainForm.cs
index 92c0b25..fbc7bd2 100644
--- a/src/Bro.M071.Process/UI/M071_MainForm.cs
+++ b/src/Bro.M071.Process/UI/M071_MainForm.cs
@@ -1,4 +1,5 @@
-锘縰sing Bro.UI.Model.Winform;
+锘縰sing Bro.Common.Helper;
+using Bro.UI.Model.Winform;
 using System;
 using System.Collections.Generic;
 using System.ComponentModel;
@@ -14,9 +15,115 @@
     [MenuNode("M071_MainForm", "閿洏妫�娴嬩富鐣岄潰", 3, "M071Node", true)]
     public partial class M071_MainForm : MenuFrmBase
     {
+        Canvas cvImage = new Canvas();
+        M071Config Config => Process?.IConfig as M071Config;
+
         public M071_MainForm()
         {
             InitializeComponent();
+
+            cvImage.IsShowElementList = false;
+            tsmiShowStatusBar.Checked = cvImage.IsShowStatusBar = false;
+            tsmiShowToolBar.Checked = cvImage.IsShowToolBar = false;
+            cvImage.Dock = DockStyle.Fill;
+            this.Controls.Add(cvImage);
+
+            tscEditLocation.Visible = tsmiShowEditor.Checked = false;
+        }
+
+        public override void OnProcessUpdated()
+        {
+            base.OnProcessUpdated();
+
+            if (Config == null)
+                return;
+
+            if (string.IsNullOrWhiteSpace(Config.BackgroundImagePath))
+                return;
+
+            try
+            {
+                Bitmap image = (Bitmap)Image.FromFile(Config.BackgroundImagePath);
+                cvImage.LoadImage(image);
+            }
+            catch (Exception ex)
+            {
+                LogAsync(new LogMsg(DateTime.Now, "杞藉叆鑳屾櫙鍥惧紓甯�", ex.Message));
+                return;
+            }
+
+            cvImage.Elements.Clear();
+            lvMeasures.Items.Clear();
+            Config.MeasurementUnitCollection.ForEach(u =>
+            {
+                if (!u.IsEnabled)
+                    return;
+
+                var ele = new KeyIndicator(u.Id, u.DisplayLocation);
+                cvImage.Elements.Add(ele);
+
+                ListViewItem item = new ListViewItem(u.GetDisplayText());
+                item.Tag = u.Id;
+                lvMeasures.Items.Add(item);
+            });
+        }
+        
+        private void lvMeasures_SelectedIndexChanged(object sender, EventArgs e)
+        {
+            if (lvMeasures.SelectedItems.Count <= 0)
+                return;
+
+            var ele = cvImage.Elements.FirstOrDefault(u => u.ID == lvMeasures.SelectedItems[0].Tag.ToString());
+            propGridKeyIndicator.SelectedObject = ele;
+        }
+
+        private void tsmiShowToolBar_CheckedChanged(object sender, EventArgs e)
+        {
+            cvImage.IsShowToolBar = tsmiShowToolBar.Checked;
+        }
+
+        private void tsmiShowStatusBar_CheckedChanged(object sender, EventArgs e)
+        {
+            cvImage.IsShowStatusBar = tsmiShowStatusBar.Checked;
+        }
+
+        private void tsmiShowEditor_CheckedChanged(object sender, EventArgs e)
+        {
+            tscEditLocation.Visible = tsmiShowEditor.Checked;
+        }
+
+        private void btnCancelEdit_Click(object sender, EventArgs e)
+        {
+            cvImage.Elements.Clear();
+            lvMeasures.Items.Clear();
+            Config.MeasurementUnitCollection.ForEach(u =>
+            {
+                if (!u.IsEnabled)
+                    return;
+
+                var ele = new KeyIndicator(u.Id, u.DisplayLocation);
+                cvImage.Elements.Add(ele);
+
+                ListViewItem item = new ListViewItem(u.GetDisplayText());
+                item.Tag = u.Id;
+                lvMeasures.Items.Add(item);
+            });
+
+            //tscEditLocation.Visible = false;
+        }
+
+        private void btnConfirmEdit_Click(object sender, EventArgs e)
+        {
+            cvImage.Elements.ToList().ForEach(ele =>
+            {
+                var measure = Config.MeasurementUnitCollection.FirstOrDefault(u => u.Id == ele.ID);
+                if (measure != null)
+                {
+                    measure.DisplayLocation = (ele as KeyIndicator).DisplayRect;
+                }
+            });
+
+            //tscEditLocation.Visible = false;
         }
     }
 }

--
Gitblit v1.8.0