From 9577005f2addda8a350e40c77055b77d3b083f58 Mon Sep 17 00:00:00 2001
From: yangyin <1850366751@qq.com>
Date: 星期三, 06 十一月 2024 16:45:27 +0800
Subject: [PATCH] 添加layer

---
 WinFrmUI/DPumpHydr.WinFrmUI.Volute/Occ/LayersDockPanel.cs          |   66 ++++++++++++----
 WinFrmUI/DPumpHydr.WinFrmUI.Volute/Occ/LayersDockPanel.Designer.cs |  117 +++++++++++++++++++++++-----
 WinFrmUI/DPumpHydr.WinFrmUI.Volute/Occ/LayersDockPanel.resx        |   16 +++
 3 files changed, 157 insertions(+), 42 deletions(-)

diff --git a/WinFrmUI/DPumpHydr.WinFrmUI.Volute/Occ/LayersDockPanel.Designer.cs b/WinFrmUI/DPumpHydr.WinFrmUI.Volute/Occ/LayersDockPanel.Designer.cs
index 1d27111..46bca78 100644
--- a/WinFrmUI/DPumpHydr.WinFrmUI.Volute/Occ/LayersDockPanel.Designer.cs
+++ b/WinFrmUI/DPumpHydr.WinFrmUI.Volute/Occ/LayersDockPanel.Designer.cs
@@ -30,37 +30,104 @@
         /// </summary>
         private void InitializeComponent()
         {
-            lstLayers = new CrownListView();
-            cmbList = new CrownDropDownList();
+            System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle();
+            System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle();
+            System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle();
+            System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle();
+            GridViewLayers = new PoisonDataGridView();
+            colorDialog1 = new System.Windows.Forms.ColorDialog();
+            Color = new System.Windows.Forms.DataGridViewImageColumn();
+            layer = new System.Windows.Forms.DataGridViewTextBoxColumn();
+            visible = new System.Windows.Forms.DataGridViewImageColumn();
+            ((System.ComponentModel.ISupportInitialize)GridViewLayers).BeginInit();
             SuspendLayout();
             // 
-            // lstLayers
+            // GridViewLayers
             // 
-            lstLayers.Dock = System.Windows.Forms.DockStyle.Fill;
-            lstLayers.HideScrollBars = false;
-            lstLayers.Location = new System.Drawing.Point(0, 51);
-            lstLayers.Name = "lstLayers";
-            lstLayers.ShowIcons = true;
-            lstLayers.Size = new System.Drawing.Size(280, 399);
-            lstLayers.TabIndex = 0;
-            lstLayers.Text = "crownListView1";
+            GridViewLayers.AllowUserToAddRows = false;
+            GridViewLayers.AllowUserToDeleteRows = false;
+            GridViewLayers.AllowUserToResizeRows = false;
+            GridViewLayers.BackgroundColor = System.Drawing.Color.White;
+            GridViewLayers.BorderStyle = System.Windows.Forms.BorderStyle.None;
+            GridViewLayers.CellBorderStyle = System.Windows.Forms.DataGridViewCellBorderStyle.None;
+            GridViewLayers.ColumnHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Sunken;
+            dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
+            dataGridViewCellStyle1.BackColor = System.Drawing.Color.FromArgb(59, 102, 150);
+            dataGridViewCellStyle1.Font = new System.Drawing.Font("Segoe UI", 11F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel);
+            dataGridViewCellStyle1.ForeColor = System.Drawing.Color.FromArgb(255, 255, 255);
+            dataGridViewCellStyle1.SelectionBackColor = System.Drawing.Color.FromArgb(85, 127, 176);
+            dataGridViewCellStyle1.SelectionForeColor = System.Drawing.Color.FromArgb(17, 17, 17);
+            dataGridViewCellStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
+            GridViewLayers.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle1;
+            GridViewLayers.ColumnHeadersHeight = 20;
+            GridViewLayers.ColumnHeadersVisible = false;
+            GridViewLayers.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { Color, layer, visible });
+            dataGridViewCellStyle3.Alignment = System.Windows.Forms.DataGridViewContentAlignment.TopLeft;
+            dataGridViewCellStyle3.BackColor = System.Drawing.Color.FromArgb(255, 255, 255);
+            dataGridViewCellStyle3.Font = new System.Drawing.Font("Segoe UI", 11F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel);
+            dataGridViewCellStyle3.ForeColor = System.Drawing.Color.FromArgb(136, 136, 136);
+            dataGridViewCellStyle3.SelectionBackColor = System.Drawing.Color.FromArgb(75, 110, 175);
+            dataGridViewCellStyle3.SelectionForeColor = System.Drawing.Color.FromArgb(17, 17, 17);
+            dataGridViewCellStyle3.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
+            GridViewLayers.DefaultCellStyle = dataGridViewCellStyle3;
+            GridViewLayers.Dock = System.Windows.Forms.DockStyle.Fill;
+            GridViewLayers.EnableHeadersVisualStyles = false;
+            GridViewLayers.Font = new System.Drawing.Font("Segoe UI", 11F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel);
+            GridViewLayers.GridColor = System.Drawing.Color.FromArgb(255, 255, 255);
+            GridViewLayers.Location = new System.Drawing.Point(0, 25);
+            GridViewLayers.Name = "GridViewLayers";
+            GridViewLayers.ReadOnly = true;
+            GridViewLayers.RowHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.None;
+            dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
+            dataGridViewCellStyle4.BackColor = System.Drawing.Color.White;
+            dataGridViewCellStyle4.Font = new System.Drawing.Font("Segoe UI", 11F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel);
+            dataGridViewCellStyle4.ForeColor = System.Drawing.Color.FromArgb(255, 255, 255);
+            dataGridViewCellStyle4.SelectionBackColor = System.Drawing.Color.FromArgb(75, 110, 175);
+            dataGridViewCellStyle4.SelectionForeColor = System.Drawing.Color.FromArgb(17, 17, 17);
+            dataGridViewCellStyle4.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
+            GridViewLayers.RowHeadersDefaultCellStyle = dataGridViewCellStyle4;
+            GridViewLayers.RowHeadersVisible = false;
+            GridViewLayers.RowHeadersWidth = 20;
+            GridViewLayers.RowHeadersWidthSizeMode = System.Windows.Forms.DataGridViewRowHeadersWidthSizeMode.DisableResizing;
+            GridViewLayers.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
+            GridViewLayers.Size = new System.Drawing.Size(280, 425);
+            GridViewLayers.TabIndex = 0;
+            GridViewLayers.CellContentClick += GridViewLayers_CellContentClick;
             // 
-            // cmbList
+            // Color
             // 
-            cmbList.Dock = System.Windows.Forms.DockStyle.Top;
-            cmbList.Location = new System.Drawing.Point(0, 25);
-            cmbList.Name = "cmbList";
-            cmbList.ShowBorder = false;
-            cmbList.Size = new System.Drawing.Size(280, 26);
-            cmbList.TabIndex = 1;
-            cmbList.Text = "crownDropdownList1";
+            Color.HeaderText = "棰滆壊";
+            Color.Name = "Color";
+            Color.ReadOnly = true;
+            Color.Width = 40;
+            // 
+            // layer
+            // 
+            dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
+            dataGridViewCellStyle2.ForeColor = System.Drawing.Color.Black;
+            dataGridViewCellStyle2.SelectionForeColor = System.Drawing.Color.White;
+            layer.DefaultCellStyle = dataGridViewCellStyle2;
+            layer.HeaderText = "鍥惧眰";
+            layer.Name = "layer";
+            layer.ReadOnly = true;
+            layer.Resizable = System.Windows.Forms.DataGridViewTriState.True;
+            layer.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
+            layer.Width = 125;
+            // 
+            // visible
+            // 
+            visible.HeaderText = "鏄剧ず\\闅愯棌";
+            visible.Name = "visible";
+            visible.ReadOnly = true;
+            visible.Resizable = System.Windows.Forms.DataGridViewTriState.True;
+            visible.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
+            visible.Width = 40;
             // 
             // LayersDockPanel
             // 
             AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
             AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
-            Controls.Add(lstLayers);
-            Controls.Add(cmbList);
+            Controls.Add(GridViewLayers);
             DefaultDockArea = RLT.Enum.Crown.DockArea.Left;
             DockText = "Layers";
             Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, 0);
@@ -68,12 +135,16 @@
             Name = "LayersDockPanel";
             SerializationKey = "DockLayers";
             Size = new System.Drawing.Size(280, 450);
+            ((System.ComponentModel.ISupportInitialize)GridViewLayers).EndInit();
             ResumeLayout(false);
         }
 
         #endregion
 
-        private CrownListView lstLayers;
-        private CrownDropDownList cmbList;
+        private PoisonDataGridView GridViewLayers;
+        private System.Windows.Forms.ColorDialog colorDialog1;
+        private System.Windows.Forms.DataGridViewImageColumn Color;
+        private System.Windows.Forms.DataGridViewTextBoxColumn layer;
+        private System.Windows.Forms.DataGridViewImageColumn visible;
     }
 }
diff --git a/WinFrmUI/DPumpHydr.WinFrmUI.Volute/Occ/LayersDockPanel.cs b/WinFrmUI/DPumpHydr.WinFrmUI.Volute/Occ/LayersDockPanel.cs
index c83676e..6eb40be 100644
--- a/WinFrmUI/DPumpHydr.WinFrmUI.Volute/Occ/LayersDockPanel.cs
+++ b/WinFrmUI/DPumpHydr.WinFrmUI.Volute/Occ/LayersDockPanel.cs
@@ -1,33 +1,65 @@
 锘縰sing DPumpHydr.WinFrmUI.RLT.Child.Crown;
+using DPumpHydr.WinFrmUI.RLT.Controls;
 using DPumpHydr.WinFrmUI.RLT.Docking.Crown;
+using System.Drawing;
+using System.Windows.Forms;
 
 namespace DPumpHydr.WinFrmUI.Volute 
 {
     public partial class LayersDockPanel : CrownToolWindow
     {
-        #region Constructor Region
 
         public LayersDockPanel()
         {
             InitializeComponent();
             this.SerializationKey = "LayersDockPanel";
-            // Build dummy list data
-            //for (int i = 0; i < 100; i++)
-            //{
-            //    CrownListItem item = new($"List item #{i}")
-            //    {
-            //        Icon = DPumpHydr.WinFrmUI.Volute.Properties.Resources.application_16x
-            //    };
-            //    lstLayers.Items.Add(item);
-            //}
-
-            //// Build dropdown list data
-            //for (int i = 0; i < 5; i++)
-            //{
-            //    cmbList.Items.Add(new CrownDropDownItem($"Dropdown item #{i}"));
-            //}
+            visible.Image = imagevisible;
+            Color AcquiesceColor = ColorTranslator.FromHtml("#a7ebcc");
+            Color.Image = Drawicon(AcquiesceColor);
+            GridViewLayers.Rows.Add();
+            GridViewLayers.Rows.Add();
+            GridViewLayers.Rows.Add();
+            GridViewLayers.Rows[0].Cells["layer"].Value = "鍥惧眰鍥惧眰鍥惧眰鍥惧眰";
+            GridViewLayers.Rows[1].Cells["layer"].Value = "鍥惧眰2";
+            GridViewLayers.Rows[2].Cells["layer"].Value = "鍥惧眰3";
         }
 
-        #endregion
+        private Bitmap Drawicon(Color color)
+        {
+            Bitmap colorImage = new Bitmap(20, 20);
+            using (Graphics g = Graphics.FromImage(colorImage))
+            {
+                Color myColor = color;
+                g.Clear(myColor);
+            }
+            return colorImage;
+        }
+        private Image imageHidden = GlobalResource.BuildImage("Generic-Hidden.png", 20, 20);
+        private Image imagevisible = GlobalResource.BuildImage("Generic-Visible.png", 20, 20);
+        private void GridViewLayers_CellContentClick(object sender, System.Windows.Forms.DataGridViewCellEventArgs e)
+        {
+            if (e.ColumnIndex == 0)
+            {
+                if (colorDialog1.ShowDialog() == DialogResult.OK)
+                {
+                    GridViewLayers.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = Drawicon(colorDialog1.Color);
+                }
+
+            }
+            if (e.ColumnIndex == 2)
+            {
+                if (GridViewLayers.Rows[e.RowIndex].Cells[e.ColumnIndex].Value == imageHidden)
+                {
+                    GridViewLayers.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = imagevisible;
+                    return;
+                }
+                else
+                {
+                    GridViewLayers.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = imageHidden;
+                    return;
+                }
+
+            }
+        }
     }
 }
\ No newline at end of file
diff --git a/WinFrmUI/DPumpHydr.WinFrmUI.Volute/Occ/LayersDockPanel.resx b/WinFrmUI/DPumpHydr.WinFrmUI.Volute/Occ/LayersDockPanel.resx
index 8b2ff64..daed069 100644
--- a/WinFrmUI/DPumpHydr.WinFrmUI.Volute/Occ/LayersDockPanel.resx
+++ b/WinFrmUI/DPumpHydr.WinFrmUI.Volute/Occ/LayersDockPanel.resx
@@ -1,7 +1,7 @@
 锘�<?xml version="1.0" encoding="utf-8"?>
 <root>
   <!--
-    Microsoft ResX Schema
+    Microsoft ResX Schema 
 
     Version 2.0
 
@@ -48,7 +48,7 @@
     value   : The object must be serialized with
             : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
             : and then encoded with base64 encoding.
-
+    
     mimetype: application/x-microsoft.net.object.soap.base64
     value   : The object must be serialized with
             : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
@@ -117,4 +117,16 @@
   <resheader name="writer">
     <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </resheader>
+  <metadata name="Color.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>True</value>
+  </metadata>
+  <metadata name="layer.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>True</value>
+  </metadata>
+  <metadata name="visible.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+    <value>True</value>
+  </metadata>
+  <metadata name="colorDialog1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>17, 17</value>
+  </metadata>
 </root>
\ No newline at end of file

--
Gitblit v1.9.3