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