修改更新界面
This commit is contained in:
parent
a9d02a5a9d
commit
7828ca663f
130
DH.Commons.Devies/Base/CameraBase.cs
Normal file
130
DH.Commons.Devies/Base/CameraBase.cs
Normal file
@ -0,0 +1,130 @@
|
||||
using System.ComponentModel;
|
||||
using System.Drawing.Imaging;
|
||||
using OpenCvSharp;
|
||||
|
||||
namespace DH.Devices.Devices
|
||||
{
|
||||
public class CameraBase
|
||||
{
|
||||
public volatile int SnapshotCount = 0;
|
||||
|
||||
public virtual bool isEnabled { get; set; } = false;
|
||||
|
||||
[Category("采图模式")]
|
||||
[Description("是否连续模式。true:连续模式采图;false:触发模式采图")]
|
||||
[DisplayName("连续模式")]
|
||||
public bool IsContinueMode { get; set; } = false;
|
||||
|
||||
|
||||
public virtual bool isSavePicEnabled { get; set; } = false;
|
||||
|
||||
|
||||
|
||||
[Category("图片保存")]
|
||||
[Description("图片保存文件夹")]
|
||||
[DisplayName("图片保存文件夹")]
|
||||
public virtual string ImageSaveDirectory { get; set; }
|
||||
|
||||
[Category("图片保存")]
|
||||
[Description("图片保存格式")]
|
||||
[DisplayName("图片保存格式")]
|
||||
public ImageFormat ImageFormat { get; set; } = ImageFormat.Jpeg;
|
||||
|
||||
[Category("采图模式")]
|
||||
[Description("是否硬触发模式。true:硬触发;false:软触发")]
|
||||
[DisplayName("硬触发")]
|
||||
public bool IsHardwareTrigger { get; set; } = false;
|
||||
|
||||
public string SerialNumber { get; set; } = string.Empty;
|
||||
public string CameraName { get; set; } = string.Empty;
|
||||
|
||||
public string CameraIP { get; set; } = string.Empty;
|
||||
|
||||
public string ComputerIP { get; set; } = string.Empty;
|
||||
|
||||
// public StreamFormat dvpStreamFormat = dvpStreamFormat.;
|
||||
|
||||
[Category("采图模式")]
|
||||
[Description("是否传感器直接硬触发。true:传感器硬触发,不通过软件触发;false:通过软件触发IO 的硬触发模式")]
|
||||
[DisplayName("是否传感器直接硬触发")]
|
||||
public bool IsDirectHardwareTrigger { get; set; } = false;
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 增益
|
||||
/// </summary>
|
||||
[Category("相机设置")]
|
||||
[DisplayName("增益")]
|
||||
[Description("Gain:增益,-1:不设置,不同型号相机的增益,请参考mvs")]
|
||||
public float Gain { get; set; } = -1;
|
||||
|
||||
[Category("图像旋转")]
|
||||
[Description("默认旋转,相机开启后默认不旋转")]
|
||||
[DisplayName("默认旋转")]
|
||||
public virtual float RotateImage { get; set; } = 0;
|
||||
|
||||
[Category("取像配置")]
|
||||
[Description("曝光")]
|
||||
[DisplayName("曝光")]
|
||||
public virtual float Exposure { get; set; } = 200;
|
||||
|
||||
[Category("相机设置")]
|
||||
[DisplayName("硬触发后的延迟")]
|
||||
[Description("TriggerDelay:硬触发后的延迟,单位:us 微秒")]
|
||||
public float TriggerDelay { get; set; } = 0;
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 滤波时间
|
||||
/// </summary>
|
||||
[Category("相机设置")]
|
||||
[DisplayName("滤波时间")]
|
||||
[Description("LineDebouncerTime:I/O去抖时间 单位:us")]
|
||||
public int LineDebouncerTime { get; set; } = 0;
|
||||
|
||||
|
||||
|
||||
public Action<DateTime, CameraBase, Mat> OnHImageOutput { get; set; }
|
||||
/// <summary>
|
||||
/// 相机连接
|
||||
/// </summary>
|
||||
/// <returns>是否成功</returns>
|
||||
public virtual bool CameraConnect() { return false; }
|
||||
|
||||
/// <summary>
|
||||
/// 相机断开
|
||||
/// </summary>
|
||||
/// <returns>是否成功</returns>
|
||||
public virtual bool CameraDisConnect() { return false; }
|
||||
|
||||
/// <summary>
|
||||
/// 抓取一张图像
|
||||
/// </summary>
|
||||
/// <returns>图像</returns>
|
||||
//internal virtual HObject GrabOneImage(string cameraName) { return null; }
|
||||
/// <summary>
|
||||
/// 设置曝光时间
|
||||
/// </summary>
|
||||
/// <param name="exposureTime">曝光时间</param>
|
||||
public virtual void SetExposure(int exposureTime, string cameraName) { }
|
||||
/// <summary>
|
||||
/// 设置增益
|
||||
/// </summary>
|
||||
/// <param name="exposure">增益</param>
|
||||
public virtual void SetGain(int gain, string cameraName) { }
|
||||
/// <summary>
|
||||
/// 设置采集模式
|
||||
/// </summary>
|
||||
/// <param name="mode">0=连续采集,即异步采集 1=单次采集,即同步采集</param>
|
||||
internal virtual void SetAcquisitionMode(int mode) { }
|
||||
/// <summary>
|
||||
/// 设置采集图像的ROI
|
||||
/// </summary>
|
||||
internal virtual void SetAcqRegion(int offsetV, int offsetH, int imageH, int imageW, string cameraName) { }
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
31
DH.Commons.Devies/DH.Commons.Devies.csproj
Normal file
31
DH.Commons.Devies/DH.Commons.Devies.csproj
Normal file
@ -0,0 +1,31 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
<Platforms>AnyCPU;X64</Platforms>
|
||||
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Folder Include="Enums\" />
|
||||
<Folder Include="Helper\" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="OpenCvSharp4" Version="4.10.0.20241108" />
|
||||
<PackageReference Include="OpenCvSharp4.Extensions" Version="4.10.0.20241108" />
|
||||
<PackageReference Include="OpenCvSharp4.runtime.win" Version="4.10.0.20241108" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Reference Include="halcondotnet">
|
||||
<HintPath>..\x64\Debug\halcondotnet.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="hdevenginedotnet">
|
||||
<HintPath>..\x64\Debug\hdevenginedotnet.dll</HintPath>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
16
DH.Commons/Enums/ClassHelper.cs
Normal file
16
DH.Commons/Enums/ClassHelper.cs
Normal file
@ -0,0 +1,16 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DH.Commons.Enums
|
||||
{
|
||||
public class CameraInfo
|
||||
{
|
||||
public string CamName { get; set; }
|
||||
public string Serinum { get; set; }
|
||||
public string IP { get; set; }
|
||||
}
|
||||
|
||||
}
|
@ -13,7 +13,6 @@
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Compile Include="CameraBase.cs" />
|
||||
<Compile Include="Do3ThinkCamera.cs" />
|
||||
<Compile Include="HikVisionCamera.cs" />
|
||||
</ItemGroup>
|
||||
@ -25,6 +24,7 @@
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\DH.Commons.Devies\DH.Commons.Devies.csproj" />
|
||||
<ProjectReference Include="..\DH.Commons\DH.Commons.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
using System.Diagnostics;
|
||||
using System.Reflection.Metadata;
|
||||
using System.Xml.Linq;
|
||||
using DH.Devices.Devices;
|
||||
using DVPCameraType;
|
||||
using OpenCvSharp;
|
||||
using static System.Net.Mime.MediaTypeNames;
|
||||
@ -20,6 +21,7 @@ namespace DH.Devices.Camera
|
||||
|
||||
public int m_n_dev_count = 0;
|
||||
private DVPCamera.dvpStreamCallback ImageCallback;
|
||||
public dvpStreamFormat dvpStreamFormat = dvpStreamFormat.S_RGB24;
|
||||
public int m_CamCount = 0;
|
||||
public Double m_dfDisplayCount = 0;
|
||||
public Do3ThinkCamera()
|
||||
|
@ -5,6 +5,7 @@ using System.Runtime.InteropServices;
|
||||
using System.Xml.Linq;
|
||||
using DH.Commons.Enums;
|
||||
using static MvCamCtrl.NET.MyCamera;
|
||||
using DH.Devices.Devices;
|
||||
|
||||
|
||||
|
||||
|
@ -27,6 +27,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Motion", "Motion", "{5C8472
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DH.Devices.Motion", "DH.Devices.Motion\DH.Devices.Motion.csproj", "{144E3775-0BD7-4528-9FB0-A0F4ADC74313}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DH.Commons.Devies", "DH.Commons.Devies\DH.Commons.Devies.csproj", "{A33108B6-2740-4D28-AD22-B280372980BE}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
@ -83,6 +85,14 @@ Global
|
||||
{144E3775-0BD7-4528-9FB0-A0F4ADC74313}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{144E3775-0BD7-4528-9FB0-A0F4ADC74313}.Release|x64.ActiveCfg = Release|x64
|
||||
{144E3775-0BD7-4528-9FB0-A0F4ADC74313}.Release|x64.Build.0 = Release|x64
|
||||
{A33108B6-2740-4D28-AD22-B280372980BE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{A33108B6-2740-4D28-AD22-B280372980BE}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{A33108B6-2740-4D28-AD22-B280372980BE}.Debug|x64.ActiveCfg = Debug|X64
|
||||
{A33108B6-2740-4D28-AD22-B280372980BE}.Debug|x64.Build.0 = Debug|X64
|
||||
{A33108B6-2740-4D28-AD22-B280372980BE}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{A33108B6-2740-4D28-AD22-B280372980BE}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{A33108B6-2740-4D28-AD22-B280372980BE}.Release|x64.ActiveCfg = Release|X64
|
||||
{A33108B6-2740-4D28-AD22-B280372980BE}.Release|x64.Build.0 = Release|X64
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
@ -97,6 +107,7 @@ Global
|
||||
{458B2CF6-6F1B-4B8B-BB85-C6FD7F453A5D} = {2560C5A5-0CA2-48AD-B606-6C55BEFD8109}
|
||||
{5C8472C6-EB6A-4D89-B519-7073BBF6A5D2} = {8EC33C16-65CE-4C12-9C8D-DB2425F9F7C0}
|
||||
{144E3775-0BD7-4528-9FB0-A0F4ADC74313} = {5C8472C6-EB6A-4D89-B519-7073BBF6A5D2}
|
||||
{A33108B6-2740-4D28-AD22-B280372980BE} = {0AB4BB9A-A861-4F80-B549-CD331490942B}
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {6FC1A8DF-636E-434C-981E-10F20FAD723B}
|
||||
|
@ -12,20 +12,13 @@
|
||||
<OutputType>WinExe</OutputType>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Compile Include="Views\CamConfigFrm.cs" />
|
||||
<Compile Include="Views\CamConfigFrm.Designer.cs" />
|
||||
<Compile Include="Views\UserConfigFrm.cs" />
|
||||
<Compile Include="Views\UserConfigFrm.Designer.cs" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="Views\CamConfigFrm.resx" />
|
||||
<EmbeddedResource Include="Views\UserConfigFrm.resx" />
|
||||
</ItemGroup>
|
||||
|
||||
|
||||
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="AntdUI" Version="1.8.9" />
|
||||
<PackageReference Include="AntdUI" Version="1.9.3" />
|
||||
<PackageReference Include="System.IO.Ports" Version="9.0.2" />
|
||||
</ItemGroup>
|
||||
|
||||
|
201
DHSoftware/MainWindow.Designer.cs
generated
201
DHSoftware/MainWindow.Designer.cs
generated
@ -47,17 +47,15 @@
|
||||
panel2 = new AntdUI.Panel();
|
||||
panel4 = new AntdUI.Panel();
|
||||
panel6 = new AntdUI.Panel();
|
||||
splitContainer1 = new SplitContainer();
|
||||
splitContainer2 = new SplitContainer();
|
||||
tabImgDisplay = new AntdUI.Tabs();
|
||||
tabPage1 = new AntdUI.TabPage();
|
||||
panel5 = new AntdUI.Panel();
|
||||
tabs3 = new AntdUI.Tabs();
|
||||
tabsStas = new AntdUI.Tabs();
|
||||
tabPage3 = new AntdUI.TabPage();
|
||||
richTextBox1 = new RichTextBox();
|
||||
divider3 = new AntdUI.Divider();
|
||||
panel3 = new AntdUI.Panel();
|
||||
tabs2 = new AntdUI.Tabs();
|
||||
tabsConfig = new AntdUI.Tabs();
|
||||
tabPage2 = new AntdUI.TabPage();
|
||||
divider1 = new AntdUI.Divider();
|
||||
panel1 = new AntdUI.Panel();
|
||||
segmented1 = new AntdUI.Segmented();
|
||||
titlebar.SuspendLayout();
|
||||
@ -66,12 +64,18 @@
|
||||
panel2.SuspendLayout();
|
||||
panel4.SuspendLayout();
|
||||
panel6.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)splitContainer1).BeginInit();
|
||||
splitContainer1.Panel1.SuspendLayout();
|
||||
splitContainer1.Panel2.SuspendLayout();
|
||||
splitContainer1.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)splitContainer2).BeginInit();
|
||||
splitContainer2.Panel1.SuspendLayout();
|
||||
splitContainer2.Panel2.SuspendLayout();
|
||||
splitContainer2.SuspendLayout();
|
||||
tabImgDisplay.SuspendLayout();
|
||||
panel5.SuspendLayout();
|
||||
tabs3.SuspendLayout();
|
||||
tabsStas.SuspendLayout();
|
||||
tabPage3.SuspendLayout();
|
||||
panel3.SuspendLayout();
|
||||
tabs2.SuspendLayout();
|
||||
tabsConfig.SuspendLayout();
|
||||
panel1.SuspendLayout();
|
||||
SuspendLayout();
|
||||
//
|
||||
@ -120,7 +124,6 @@
|
||||
buttonSZ.Radius = 0;
|
||||
buttonSZ.Size = new Size(50, 40);
|
||||
buttonSZ.TabIndex = 0;
|
||||
buttonSZ.Visible = false;
|
||||
buttonSZ.WaveSize = 0;
|
||||
//
|
||||
// pageHeader1
|
||||
@ -139,7 +142,7 @@
|
||||
// label1
|
||||
//
|
||||
label1.AutoSize = true;
|
||||
label1.Location = new Point(61, 10);
|
||||
label1.Location = new Point(709, 10);
|
||||
label1.Name = "label1";
|
||||
label1.Size = new Size(64, 21);
|
||||
label1.TabIndex = 1;
|
||||
@ -148,10 +151,10 @@
|
||||
// divider2
|
||||
//
|
||||
divider2.Dock = DockStyle.Top;
|
||||
divider2.Location = new Point(0, 0);
|
||||
divider2.Location = new Point(54, 0);
|
||||
divider2.Name = "divider2";
|
||||
divider2.OrientationMargin = 0F;
|
||||
divider2.Size = new Size(1024, 10);
|
||||
divider2.Size = new Size(970, 10);
|
||||
divider2.TabIndex = 0;
|
||||
divider2.Text = "";
|
||||
//
|
||||
@ -169,7 +172,6 @@
|
||||
// panel2
|
||||
//
|
||||
panel2.Controls.Add(panel4);
|
||||
panel2.Controls.Add(panel3);
|
||||
panel2.Dock = DockStyle.Fill;
|
||||
panel2.Location = new Point(0, 68);
|
||||
panel2.Name = "panel2";
|
||||
@ -180,71 +182,100 @@
|
||||
// panel4
|
||||
//
|
||||
panel4.Controls.Add(panel6);
|
||||
panel4.Controls.Add(panel5);
|
||||
panel4.Dock = DockStyle.Fill;
|
||||
panel4.Location = new Point(0, 0);
|
||||
panel4.Name = "panel4";
|
||||
panel4.Size = new Size(661, 500);
|
||||
panel4.Size = new Size(1024, 500);
|
||||
panel4.TabIndex = 1;
|
||||
panel4.Text = "panel4";
|
||||
//
|
||||
// panel6
|
||||
//
|
||||
panel6.Controls.Add(tabImgDisplay);
|
||||
panel6.Controls.Add(splitContainer1);
|
||||
panel6.Dock = DockStyle.Fill;
|
||||
panel6.Location = new Point(0, 0);
|
||||
panel6.Name = "panel6";
|
||||
panel6.Size = new Size(661, 358);
|
||||
panel6.Size = new Size(1024, 500);
|
||||
panel6.TabIndex = 1;
|
||||
panel6.Text = "panel6";
|
||||
//
|
||||
// splitContainer1
|
||||
//
|
||||
splitContainer1.BackColor = SystemColors.Control;
|
||||
splitContainer1.Dock = DockStyle.Fill;
|
||||
splitContainer1.Location = new Point(0, 0);
|
||||
splitContainer1.Name = "splitContainer1";
|
||||
//
|
||||
// splitContainer1.Panel1
|
||||
//
|
||||
splitContainer1.Panel1.Controls.Add(splitContainer2);
|
||||
//
|
||||
// splitContainer1.Panel2
|
||||
//
|
||||
splitContainer1.Panel2.BackColor = SystemColors.ButtonFace;
|
||||
splitContainer1.Panel2.Controls.Add(tabsConfig);
|
||||
splitContainer1.Size = new Size(1024, 500);
|
||||
splitContainer1.SplitterDistance = 580;
|
||||
splitContainer1.SplitterIncrement = 2;
|
||||
splitContainer1.SplitterWidth = 10;
|
||||
splitContainer1.TabIndex = 0;
|
||||
//
|
||||
// splitContainer2
|
||||
//
|
||||
splitContainer2.Dock = DockStyle.Fill;
|
||||
splitContainer2.Location = new Point(0, 0);
|
||||
splitContainer2.Name = "splitContainer2";
|
||||
splitContainer2.Orientation = Orientation.Horizontal;
|
||||
//
|
||||
// splitContainer2.Panel1
|
||||
//
|
||||
splitContainer2.Panel1.Controls.Add(tabImgDisplay);
|
||||
//
|
||||
// splitContainer2.Panel2
|
||||
//
|
||||
splitContainer2.Panel2.Controls.Add(tabsStas);
|
||||
splitContainer2.Size = new Size(580, 500);
|
||||
splitContainer2.SplitterDistance = 320;
|
||||
splitContainer2.TabIndex = 0;
|
||||
//
|
||||
// tabImgDisplay
|
||||
//
|
||||
tabImgDisplay.Controls.Add(tabPage1);
|
||||
tabImgDisplay.Dock = DockStyle.Fill;
|
||||
tabImgDisplay.Location = new Point(0, 0);
|
||||
tabImgDisplay.Name = "tabImgDisplay";
|
||||
tabImgDisplay.Pages.Add(tabPage1);
|
||||
tabImgDisplay.Size = new Size(661, 358);
|
||||
tabImgDisplay.Size = new Size(580, 320);
|
||||
tabImgDisplay.Style = styleCard1;
|
||||
tabImgDisplay.TabIndex = 0;
|
||||
tabImgDisplay.TabIndex = 1;
|
||||
tabImgDisplay.Text = "tabs1";
|
||||
//
|
||||
// tabPage1
|
||||
//
|
||||
tabPage1.Location = new Point(3, 28);
|
||||
tabPage1.Name = "tabPage1";
|
||||
tabPage1.Size = new Size(655, 327);
|
||||
tabPage1.Size = new Size(574, 289);
|
||||
tabPage1.TabIndex = 0;
|
||||
tabPage1.Text = "检测";
|
||||
//
|
||||
// panel5
|
||||
// tabsStas
|
||||
//
|
||||
panel5.Controls.Add(tabs3);
|
||||
panel5.Controls.Add(divider3);
|
||||
panel5.Dock = DockStyle.Bottom;
|
||||
panel5.Location = new Point(0, 358);
|
||||
panel5.Name = "panel5";
|
||||
panel5.Size = new Size(661, 142);
|
||||
panel5.TabIndex = 0;
|
||||
panel5.Text = "panel5";
|
||||
//
|
||||
// tabs3
|
||||
//
|
||||
tabs3.Dock = DockStyle.Fill;
|
||||
tabs3.Location = new Point(0, 10);
|
||||
tabs3.Name = "tabs3";
|
||||
tabs3.Pages.Add(tabPage3);
|
||||
tabs3.Size = new Size(661, 132);
|
||||
tabs3.Style = styleCard2;
|
||||
tabs3.TabIndex = 2;
|
||||
tabs3.Text = "tabs3";
|
||||
tabsStas.Controls.Add(tabPage3);
|
||||
tabsStas.Dock = DockStyle.Fill;
|
||||
tabsStas.Location = new Point(0, 0);
|
||||
tabsStas.Name = "tabsStas";
|
||||
tabsStas.Pages.Add(tabPage3);
|
||||
tabsStas.Size = new Size(580, 176);
|
||||
tabsStas.Style = styleCard2;
|
||||
tabsStas.TabIndex = 3;
|
||||
tabsStas.Text = "tabs3";
|
||||
//
|
||||
// tabPage3
|
||||
//
|
||||
tabPage3.Controls.Add(richTextBox1);
|
||||
tabPage3.Location = new Point(3, 28);
|
||||
tabPage3.Name = "tabPage3";
|
||||
tabPage3.Size = new Size(655, 101);
|
||||
tabPage3.Size = new Size(574, 145);
|
||||
tabPage3.TabIndex = 0;
|
||||
tabPage3.Text = "日志";
|
||||
//
|
||||
@ -253,61 +284,30 @@
|
||||
richTextBox1.Dock = DockStyle.Fill;
|
||||
richTextBox1.Location = new Point(0, 0);
|
||||
richTextBox1.Name = "richTextBox1";
|
||||
richTextBox1.Size = new Size(655, 101);
|
||||
richTextBox1.Size = new Size(574, 145);
|
||||
richTextBox1.TabIndex = 0;
|
||||
richTextBox1.Text = "";
|
||||
//
|
||||
// divider3
|
||||
// tabsConfig
|
||||
//
|
||||
divider3.Dock = DockStyle.Top;
|
||||
divider3.Location = new Point(0, 0);
|
||||
divider3.Name = "divider3";
|
||||
divider3.OrientationMargin = 0F;
|
||||
divider3.Size = new Size(661, 10);
|
||||
divider3.TabIndex = 1;
|
||||
divider3.Text = "";
|
||||
//
|
||||
// panel3
|
||||
//
|
||||
panel3.Controls.Add(tabs2);
|
||||
panel3.Controls.Add(divider1);
|
||||
panel3.Dock = DockStyle.Right;
|
||||
panel3.Location = new Point(661, 0);
|
||||
panel3.Name = "panel3";
|
||||
panel3.Size = new Size(363, 500);
|
||||
panel3.TabIndex = 0;
|
||||
panel3.Text = "panel3";
|
||||
//
|
||||
// tabs2
|
||||
//
|
||||
tabs2.Dock = DockStyle.Fill;
|
||||
tabs2.Location = new Point(10, 0);
|
||||
tabs2.Name = "tabs2";
|
||||
tabs2.Pages.Add(tabPage2);
|
||||
tabs2.Size = new Size(353, 500);
|
||||
tabs2.Style = styleCard3;
|
||||
tabs2.TabIndex = 1;
|
||||
tabs2.Text = "tabs2";
|
||||
tabsConfig.Controls.Add(tabPage2);
|
||||
tabsConfig.Dock = DockStyle.Fill;
|
||||
tabsConfig.Location = new Point(0, 0);
|
||||
tabsConfig.Name = "tabsConfig";
|
||||
tabsConfig.Pages.Add(tabPage2);
|
||||
tabsConfig.Size = new Size(434, 500);
|
||||
tabsConfig.Style = styleCard3;
|
||||
tabsConfig.TabIndex = 2;
|
||||
tabsConfig.Text = "tabs2";
|
||||
//
|
||||
// tabPage2
|
||||
//
|
||||
tabPage2.Location = new Point(3, 28);
|
||||
tabPage2.Name = "tabPage2";
|
||||
tabPage2.Size = new Size(347, 469);
|
||||
tabPage2.Size = new Size(428, 469);
|
||||
tabPage2.TabIndex = 0;
|
||||
tabPage2.Text = "配置";
|
||||
//
|
||||
// divider1
|
||||
//
|
||||
divider1.Dock = DockStyle.Left;
|
||||
divider1.Location = new Point(0, 0);
|
||||
divider1.Name = "divider1";
|
||||
divider1.OrientationMargin = 0F;
|
||||
divider1.Size = new Size(10, 500);
|
||||
divider1.TabIndex = 0;
|
||||
divider1.Text = "";
|
||||
divider1.Vertical = true;
|
||||
//
|
||||
// panel1
|
||||
//
|
||||
panel1.Back = SystemColors.MenuHighlight;
|
||||
@ -418,12 +418,18 @@
|
||||
panel2.ResumeLayout(false);
|
||||
panel4.ResumeLayout(false);
|
||||
panel6.ResumeLayout(false);
|
||||
splitContainer1.Panel1.ResumeLayout(false);
|
||||
splitContainer1.Panel2.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)splitContainer1).EndInit();
|
||||
splitContainer1.ResumeLayout(false);
|
||||
splitContainer2.Panel1.ResumeLayout(false);
|
||||
splitContainer2.Panel2.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)splitContainer2).EndInit();
|
||||
splitContainer2.ResumeLayout(false);
|
||||
tabImgDisplay.ResumeLayout(false);
|
||||
panel5.ResumeLayout(false);
|
||||
tabs3.ResumeLayout(false);
|
||||
tabsStas.ResumeLayout(false);
|
||||
tabPage3.ResumeLayout(false);
|
||||
panel3.ResumeLayout(false);
|
||||
tabs2.ResumeLayout(false);
|
||||
tabsConfig.ResumeLayout(false);
|
||||
panel1.ResumeLayout(false);
|
||||
ResumeLayout(false);
|
||||
}
|
||||
@ -441,17 +447,16 @@
|
||||
private AntdUI.Panel panel2;
|
||||
private AntdUI.Panel panel4;
|
||||
private AntdUI.Panel panel6;
|
||||
private AntdUI.Panel panel5;
|
||||
private AntdUI.Panel panel3;
|
||||
private Label label1;
|
||||
private AntdUI.Splitter splitter1;
|
||||
private SplitContainer splitContainer1;
|
||||
private SplitContainer splitContainer2;
|
||||
private AntdUI.Tabs tabImgDisplay;
|
||||
private AntdUI.TabPage tabPage1;
|
||||
private AntdUI.Tabs tabs3;
|
||||
private AntdUI.Tabs tabsStas;
|
||||
private AntdUI.TabPage tabPage3;
|
||||
private AntdUI.Divider divider3;
|
||||
private AntdUI.Tabs tabs2;
|
||||
private AntdUI.TabPage tabPage2;
|
||||
private AntdUI.Divider divider1;
|
||||
private RichTextBox richTextBox1;
|
||||
private Label label1;
|
||||
private AntdUI.Tabs tabsConfig;
|
||||
private AntdUI.TabPage tabPage2;
|
||||
}
|
||||
}
|
File diff suppressed because it is too large
Load Diff
227
DHSoftware/Models/DataUtil.cs
Normal file
227
DHSoftware/Models/DataUtil.cs
Normal file
@ -0,0 +1,227 @@
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace AntdUIDemo.Models
|
||||
{
|
||||
public class DataUtil
|
||||
{
|
||||
public static readonly Dictionary<string, List<MenuItems>> Menu_decetion = new Dictionary<string, List<MenuItems>>()
|
||||
{
|
||||
{ "检测项", new List<MenuItems>
|
||||
{
|
||||
new MenuItems { Text = "工位1" , Tag = "工位1"},
|
||||
new MenuItems { Text = "工位2", Tag = "工位2"},
|
||||
new MenuItems { Text = "工位3", Tag = "工位3"},
|
||||
}
|
||||
},
|
||||
//{ "布局", new List<MenuItems>
|
||||
// {
|
||||
// new MenuItems { Text = "Divider 分割线", Tag = "Divider" },
|
||||
// new MenuItems { Text = "FlowPanel 流动布局", Tag = "FlowPanel"},
|
||||
// new MenuItems { Text = "GridPanel 网格布局", Tag = "GridPanel"},
|
||||
// new MenuItems { Text = "Panel 面板", Tag = "Panel"},
|
||||
// new MenuItems { Text = "Splitter 分隔面板", Tag = "Splitter"},
|
||||
// new MenuItems { Text = "StackPanel 堆叠布局", Tag = "StackPanel"}
|
||||
// }
|
||||
//},
|
||||
//{ "导航", new List<MenuItems>
|
||||
// {
|
||||
// new MenuItems { Text = "Breadcrumb 面包屑", Tag = "Breadcrumb"},
|
||||
// new MenuItems { Text = "Dropdown 下拉菜单", Tag = "Dropdown"},
|
||||
// new MenuItems { Text = "Menu 导航菜单", Tag = "Menu"},
|
||||
// new MenuItems { Text = "Pagination 分页", Tag = "Pagination"},
|
||||
// new MenuItems { Text = "Steps 步骤条", Tag = "Steps"}
|
||||
// }
|
||||
//},
|
||||
//{ "数据录入", new List<MenuItems>
|
||||
// {
|
||||
// new MenuItems { Text = "Checkbox 多选框", Tag = "Checkbox"},
|
||||
// new MenuItems { Text = "ColorPicker 颜色选择器", Tag = "ColorPicker"},
|
||||
// new MenuItems { Text = "DatePicker 日期选择器", Tag = "DatePicker"},
|
||||
// new MenuItems { Text = "DatePickerRange 日期范围选择器", Tag = "DatePickerRange"},
|
||||
// new MenuItems { Text = "Input 输入框", Tag = "Input"},
|
||||
// new MenuItems { Text = "InputNumber 数字输入框", Tag = "InputNumber"},
|
||||
// new MenuItems { Text = "Radio 单选框", Tag = "Radio"},
|
||||
// new MenuItems { Text = "Rate 评分", Tag = "Rate"},
|
||||
// new MenuItems { Text = "Select 选择器", Tag = "Select"},
|
||||
// new MenuItems { Text = "SelectMultiple 多选选择器", Tag = "SelectMultiple"},
|
||||
// new MenuItems { Text = "Slider 滑动输入条", Tag = "Slider"},
|
||||
// new MenuItems { Text = "SliderRange 滑动范围输入条", Tag = "SliderRange"},
|
||||
// new MenuItems { Text = "Switch 开关", Tag = "Switch"},
|
||||
// new MenuItems { Text = "TimePicker 时间选择框", Tag = "TimePicker"},
|
||||
// new MenuItems { Text = "UploadDragger 上传", Tag = "UploadDragger"}
|
||||
// }
|
||||
//},
|
||||
//{ "数据展示", new List<MenuItems>
|
||||
// {
|
||||
// new MenuItems { Text = "Avatar 头像", Tag = "Avatar"},
|
||||
// new MenuItems { Text = "Badge 徽标数", Tag = "Badge"},
|
||||
// new MenuItems { Text = "Calendar 日历", Tag = "Calendar"},
|
||||
// new MenuItems { Text = "Carousel 走马灯", Tag = "Carousel"},
|
||||
// new MenuItems { Text = "Collapse 折叠面板", Tag = "Collapse"},
|
||||
// new MenuItems { Text = "Label 标签", Tag = "Label"},
|
||||
// new MenuItems { Text = "LabelTime 时间标签", Tag = "LabelTime"},
|
||||
// new MenuItems { Text = "Popover 气泡卡片", Tag = "Popover"},
|
||||
// new MenuItems { Text = "Preview 图片预览", Tag = "Preview"},
|
||||
// new MenuItems { Text = "Segmented 分段控制器", Tag = "Segmented"},
|
||||
// new MenuItems { Text = "Table 表格", Tag = "Table"},
|
||||
// new MenuItems { Text = "Tabs 标签页", Tag = "Tabs"},
|
||||
// new MenuItems { Text = "Tag 标签", Tag = "Tag"},
|
||||
// new MenuItems { Text = "Timeline 时间轴", Tag = "Timeline"},
|
||||
// new MenuItems { Text = "Tooltip 文字提示", Tag = "Tooltip"},
|
||||
// new MenuItems { Text = "Tour 漫游式引导" , Tag = "Tour"},
|
||||
// new MenuItems { Text = "Tree 树形控件", Tag = "Tree"}
|
||||
// }
|
||||
//},
|
||||
//{ "反馈", new List<MenuItems>
|
||||
// {
|
||||
// new MenuItems { Text = "Alert 警告提示", Tag = "Alert"},
|
||||
// new MenuItems { Text = "Drawer 抽屉", Tag = "Drawer"},
|
||||
// new MenuItems { Text = "Message 全局提示", Tag = "Message"},
|
||||
// new MenuItems { Text = "Modal 对话框", Tag = "Modal"},
|
||||
// new MenuItems { Text = "Notification 通知提醒框", Tag = "Notification"},
|
||||
// new MenuItems { Text = "Progress 进度条", Tag = "Progress"},
|
||||
// new MenuItems { Text = "Spin 加载中", Tag = "Spin"}
|
||||
// }
|
||||
//},
|
||||
//{ "聊天", new List<MenuItems>
|
||||
// {
|
||||
// new MenuItems { Text = "ChatList 气泡聊天列表", Tag = "ChatList"},
|
||||
// new MenuItems { Text = "MsgList 好友消息列表", Tag = "MsgList"}
|
||||
// }
|
||||
//},
|
||||
//{ "其它", new List<MenuItems>
|
||||
// {
|
||||
// new MenuItems { Text = "Battery 电池", Tag = "Battery" },
|
||||
// new MenuItems { Text = "ContextMenuStrip 快捷菜单", Tag = "ContextMenuStrip" },
|
||||
// new MenuItems { Text = "Image3D 图片3D", Tag = "Image3D" },
|
||||
// new MenuItems { Text = "PageHeader 页头", Tag= "PageHeader"},
|
||||
// new MenuItems { Text = "Signal 信号", Tag = "Signal" }
|
||||
// }
|
||||
//}
|
||||
};
|
||||
|
||||
public static readonly Dictionary<string, string> MenuIcons_zhcn = new Dictionary<string, string>
|
||||
{
|
||||
{ "通用", "AppstoreOutlined" },
|
||||
{ "布局", "LayoutOutlined" },
|
||||
{ "导航", "CompressOutlined" },
|
||||
{ "数据录入", "EditOutlined" },
|
||||
{ "数据展示", "BarChartOutlined" },
|
||||
{ "反馈", "NotificationOutlined" },
|
||||
{ "聊天", "MessageOutlined" },
|
||||
{ "其它", "SettingOutlined" }
|
||||
};
|
||||
|
||||
public static readonly Dictionary<string, List<MenuItems>> MenuItems_enus = new Dictionary<string, List<MenuItems>>()
|
||||
{
|
||||
{ "General", new List<MenuItems>
|
||||
{
|
||||
new MenuItems { Text = "Button" , Tag = "Button"},
|
||||
new MenuItems { Text = "FloatButton", Tag = "FloatButton"},
|
||||
new MenuItems { Text = "Icon", Tag = "Icon"},
|
||||
}
|
||||
},
|
||||
{ "Layout", new List<MenuItems>
|
||||
{
|
||||
new MenuItems { Text = "Divider", Tag = "Divider" },
|
||||
new MenuItems { Text = "FlowPanel", Tag = "FlowPanel"},
|
||||
new MenuItems { Text = "GridPanel", Tag = "GridPanel"},
|
||||
new MenuItems { Text = "Panel", Tag = "Panel"},
|
||||
new MenuItems { Text = "Splitter ", Tag = "Splitter"},
|
||||
new MenuItems { Text = "StackPanel", Tag = "StackPanel"}
|
||||
}
|
||||
},
|
||||
{ "Navigation", new List<MenuItems>
|
||||
{
|
||||
new MenuItems { Text = "Breadcrumb", Tag = "Breadcrumb"},
|
||||
new MenuItems { Text = "Dropdown", Tag = "Dropdown"},
|
||||
new MenuItems { Text = "Menu", Tag = "Menu"},
|
||||
new MenuItems { Text = "Pagination", Tag = "Pagination"},
|
||||
new MenuItems { Text = "Steps", Tag = "Steps"}
|
||||
}
|
||||
},
|
||||
{ "Data Entry", new List<MenuItems>
|
||||
{
|
||||
new MenuItems { Text = "Checkbox", Tag = "Checkbox"},
|
||||
new MenuItems { Text = "ColorPicker", Tag = "ColorPicker"},
|
||||
new MenuItems { Text = "DatePicker", Tag = "DatePicker"},
|
||||
new MenuItems { Text = "DatePickerRange", Tag = "DatePickerRange"},
|
||||
new MenuItems { Text = "Input", Tag = "Input"},
|
||||
new MenuItems { Text = "InputNumber", Tag = "InputNumber"},
|
||||
new MenuItems { Text = "Radio", Tag = "Radio"},
|
||||
new MenuItems { Text = "Rate", Tag = "Rate"},
|
||||
new MenuItems { Text = "Select", Tag = "Select"},
|
||||
new MenuItems { Text = "SelectMultiple", Tag = "SelectMultiple"},
|
||||
new MenuItems { Text = "Slider", Tag = "Slider"},
|
||||
new MenuItems { Text = "SliderRange", Tag = "SliderRange"},
|
||||
new MenuItems { Text = "Switch", Tag = "Switch"},
|
||||
new MenuItems { Text = "TimePicker", Tag = "TimePicker"},
|
||||
new MenuItems { Text = "UploadDragger", Tag = "UploadDragger"}
|
||||
}
|
||||
},
|
||||
{ "Data Display", new List<MenuItems>
|
||||
{
|
||||
new MenuItems { Text = "Avatar", Tag = "Avatar"},
|
||||
new MenuItems { Text = "Badge", Tag = "Badge"},
|
||||
new MenuItems { Text = "Calendar", Tag = "Calendar"},
|
||||
new MenuItems { Text = "Carousel", Tag = "Carousel"},
|
||||
new MenuItems { Text = "Collapse", Tag = "Collapse"},
|
||||
new MenuItems { Text = "Label", Tag = "Label"},
|
||||
new MenuItems { Text = "LabelTime", Tag = "LabelTime"},
|
||||
new MenuItems { Text = "Popover", Tag = "Popover"},
|
||||
new MenuItems { Text = "Preview", Tag = "Preview"},
|
||||
new MenuItems { Text = "Segmented", Tag = "Segmented"},
|
||||
new MenuItems { Text = "Table", Tag = "Table"},
|
||||
new MenuItems { Text = "Tabs", Tag = "Tabs"},
|
||||
new MenuItems { Text = "Tag", Tag = "Tag"},
|
||||
new MenuItems { Text = "Timeline", Tag = "Timeline"},
|
||||
new MenuItems { Text = "Tooltip", Tag = "Tooltip"},
|
||||
new MenuItems { Text = "Tour" , Tag = "Tour"},
|
||||
new MenuItems { Text = "Tree", Tag = "Tree"}
|
||||
}
|
||||
},
|
||||
{ "Feedback", new List<MenuItems>
|
||||
{
|
||||
new MenuItems { Text = "Alert", Tag = "Alert"},
|
||||
new MenuItems { Text = "Drawer", Tag = "Drawer"},
|
||||
new MenuItems { Text = "Message", Tag = "Message"},
|
||||
new MenuItems { Text = "Modal", Tag = "Modal"},
|
||||
new MenuItems { Text = "Notification", Tag = "Notification"},
|
||||
new MenuItems { Text = "Progress", Tag = "Progress"},
|
||||
new MenuItems { Text = "Spin", Tag = "Spin"}
|
||||
}
|
||||
},
|
||||
{ "Chat", new List<MenuItems>
|
||||
{
|
||||
new MenuItems { Text = "ChatList", Tag = "ChatList"},
|
||||
new MenuItems { Text = "MsgList", Tag = "MsgList"}
|
||||
}
|
||||
},
|
||||
{ "Other", new List<MenuItems>
|
||||
{
|
||||
new MenuItems { Text = "Battery", Tag = "Battery" },
|
||||
new MenuItems { Text = "ContextMenuStrip", Tag = "ContextMenuStrip" },
|
||||
new MenuItems { Text = "Image3D", Tag = "Image3D" },
|
||||
new MenuItems { Text = "PageHeader", Tag= "PageHeader"},
|
||||
new MenuItems { Text = "Signal", Tag = "Signal" }
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
public static readonly Dictionary<string, string> MenuIcons_enus = new Dictionary<string, string>
|
||||
{
|
||||
{ "General", "AppstoreOutlined" },
|
||||
{ "Layout", "LayoutOutlined" },
|
||||
{ "Navigation", "CompressOutlined" },
|
||||
{ "Data Entry", "EditOutlined" },
|
||||
{ "Data Display", "BarChartOutlined" },
|
||||
{ "Feedback", "NotificationOutlined" },
|
||||
{ "Chat", "MessageOutlined" },
|
||||
{ "Other", "SettingOutlined" }
|
||||
};
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
9
DHSoftware/Models/MenuItems.cs
Normal file
9
DHSoftware/Models/MenuItems.cs
Normal file
@ -0,0 +1,9 @@
|
||||
namespace AntdUIDemo.Models
|
||||
{
|
||||
public class MenuItems
|
||||
{
|
||||
public string IconSvg { get; set; } = null;
|
||||
public string Text { get; set; } = string.Empty;
|
||||
public string Tag { get; set; } = null;
|
||||
}
|
||||
}
|
166
DHSoftware/Models/User.cs
Normal file
166
DHSoftware/Models/User.cs
Normal file
@ -0,0 +1,166 @@
|
||||
using AntdUI;
|
||||
|
||||
namespace AntdUIDemo.Models
|
||||
{
|
||||
public class User : NotifyProperty
|
||||
{
|
||||
private bool selected = false;
|
||||
private string name;
|
||||
private int age = 0;
|
||||
private string address;
|
||||
private bool enabled = false;
|
||||
private CellImage[] cellImages;
|
||||
private CellTag[] cellTags;
|
||||
private CellBadge cellBadge;
|
||||
private CellText cellText;
|
||||
private CellLink[] cellLinks;
|
||||
private CellProgress cellProgress;
|
||||
private CellDivider cellDivider;
|
||||
//用于设置树形表格,加入自身数组
|
||||
private User[] users;
|
||||
|
||||
public bool Selected
|
||||
{
|
||||
get { return selected; }
|
||||
set
|
||||
{
|
||||
if (selected == value) return;
|
||||
selected = value;
|
||||
OnPropertyChanged(nameof(Selected));
|
||||
}
|
||||
}
|
||||
|
||||
public string Name
|
||||
{
|
||||
get { return name; }
|
||||
set
|
||||
{
|
||||
if (name == value) return;
|
||||
name = value;
|
||||
OnPropertyChanged(nameof(Name));
|
||||
}
|
||||
}
|
||||
|
||||
public int Age
|
||||
{
|
||||
get { return age; }
|
||||
set
|
||||
{
|
||||
if (age == value) return;
|
||||
age = value;
|
||||
OnPropertyChanged(nameof(Age));
|
||||
}
|
||||
}
|
||||
|
||||
public string Address
|
||||
{
|
||||
get { return address; }
|
||||
set
|
||||
{
|
||||
if (address == value) return;
|
||||
address = value;
|
||||
OnPropertyChanged(nameof(Address));
|
||||
}
|
||||
}
|
||||
|
||||
public bool Enabled
|
||||
{
|
||||
get { return enabled; }
|
||||
set
|
||||
{
|
||||
if (enabled == value) return;
|
||||
enabled = value;
|
||||
OnPropertyChanged(nameof(Enabled));
|
||||
}
|
||||
}
|
||||
|
||||
public CellImage[] CellImages
|
||||
{
|
||||
get { return cellImages; }
|
||||
set
|
||||
{
|
||||
if (cellImages == value) return;
|
||||
cellImages = value;
|
||||
OnPropertyChanged(nameof(CellImages));
|
||||
}
|
||||
}
|
||||
|
||||
public CellTag[] CellTags
|
||||
{
|
||||
get { return cellTags; }
|
||||
set
|
||||
{
|
||||
if (cellTags == value) return;
|
||||
cellTags = value;
|
||||
OnPropertyChanged(nameof(CellTags));
|
||||
}
|
||||
}
|
||||
|
||||
public CellBadge CellBadge
|
||||
{
|
||||
get { return cellBadge; }
|
||||
set
|
||||
{
|
||||
if (cellBadge == value) return;
|
||||
cellBadge = value;
|
||||
OnPropertyChanged(nameof(CellBadge));
|
||||
}
|
||||
}
|
||||
|
||||
public CellText CellText
|
||||
{
|
||||
get { return cellText; }
|
||||
set
|
||||
{
|
||||
if (cellText == value) return;
|
||||
cellText = value;
|
||||
OnPropertyChanged(nameof(CellText));
|
||||
}
|
||||
}
|
||||
|
||||
public CellLink[] CellLinks
|
||||
{
|
||||
get { return cellLinks; }
|
||||
set
|
||||
{
|
||||
if (cellLinks == value) return;
|
||||
cellLinks = value;
|
||||
OnPropertyChanged(nameof(CellLinks));
|
||||
}
|
||||
}
|
||||
|
||||
public CellProgress CellProgress
|
||||
{
|
||||
get { return cellProgress; }
|
||||
set
|
||||
{
|
||||
if (cellProgress == value) return;
|
||||
cellProgress = value;
|
||||
OnPropertyChanged(nameof(CellProgress));
|
||||
}
|
||||
}
|
||||
|
||||
public CellDivider CellDivider
|
||||
{
|
||||
get { return cellDivider; }
|
||||
set
|
||||
{
|
||||
if (cellDivider == value) return;
|
||||
cellDivider = value;
|
||||
OnPropertyChanged(nameof(CellDivider));
|
||||
}
|
||||
}
|
||||
|
||||
public User[] Users
|
||||
{
|
||||
get { return users; }
|
||||
set
|
||||
{
|
||||
if (users == value) return;
|
||||
users = value;
|
||||
OnPropertyChanged(nameof(Users));
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
121
DHSoftware/Views/CamConfigFrm.Designer.cs
generated
121
DHSoftware/Views/CamConfigFrm.Designer.cs
generated
@ -2,6 +2,7 @@
|
||||
{
|
||||
partial class CamConfigFrm
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// 必需的设计器变量。
|
||||
/// </summary>
|
||||
@ -28,17 +29,135 @@
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
AntdUI.Tabs.StyleLine styleLine1 = new AntdUI.Tabs.StyleLine();
|
||||
tabs1 = new AntdUI.Tabs();
|
||||
tabPage1 = new AntdUI.TabPage();
|
||||
label1 = new Label();
|
||||
btnRefreshCamList = new Button();
|
||||
dgvCams = new DataGridView();
|
||||
CamName = new DataGridViewTextBoxColumn();
|
||||
Serinum = new DataGridViewTextBoxColumn();
|
||||
IP = new DataGridViewTextBoxColumn();
|
||||
COMBO_DEVICES = new ComboBox();
|
||||
btnsubmit = new Button();
|
||||
tabs1.SuspendLayout();
|
||||
tabPage1.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)dgvCams).BeginInit();
|
||||
SuspendLayout();
|
||||
//
|
||||
// tabs1
|
||||
//
|
||||
tabs1.Controls.Add(tabPage1);
|
||||
tabs1.Dock = DockStyle.Fill;
|
||||
tabs1.Location = new Point(0, 0);
|
||||
tabs1.Name = "tabs1";
|
||||
tabs1.Pages.Add(tabPage1);
|
||||
tabs1.Size = new Size(391, 407);
|
||||
tabs1.Style = styleLine1;
|
||||
tabs1.TabIndex = 0;
|
||||
tabs1.Text = "tabs1";
|
||||
//
|
||||
// tabPage1
|
||||
//
|
||||
tabPage1.Controls.Add(btnsubmit);
|
||||
tabPage1.Controls.Add(label1);
|
||||
tabPage1.Controls.Add(btnRefreshCamList);
|
||||
tabPage1.Controls.Add(dgvCams);
|
||||
tabPage1.Controls.Add(COMBO_DEVICES);
|
||||
tabPage1.Location = new Point(3, 28);
|
||||
tabPage1.Name = "tabPage1";
|
||||
tabPage1.Size = new Size(385, 376);
|
||||
tabPage1.TabIndex = 0;
|
||||
tabPage1.Text = "相机配置";
|
||||
//
|
||||
// label1
|
||||
//
|
||||
label1.AutoSize = true;
|
||||
label1.Location = new Point(38, 15);
|
||||
label1.Name = "label1";
|
||||
label1.Size = new Size(56, 17);
|
||||
label1.TabIndex = 3;
|
||||
label1.Text = "相机类型";
|
||||
//
|
||||
// btnRefreshCamList
|
||||
//
|
||||
btnRefreshCamList.Location = new Point(36, 43);
|
||||
btnRefreshCamList.Name = "btnRefreshCamList";
|
||||
btnRefreshCamList.Size = new Size(286, 33);
|
||||
btnRefreshCamList.TabIndex = 2;
|
||||
btnRefreshCamList.Text = "刷新相机列表";
|
||||
btnRefreshCamList.UseVisualStyleBackColor = true;
|
||||
btnRefreshCamList.Click += btnRefreshCamList_Click;
|
||||
//
|
||||
// dgvCams
|
||||
//
|
||||
dgvCams.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
|
||||
dgvCams.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
|
||||
dgvCams.Columns.AddRange(new DataGridViewColumn[] { CamName, Serinum, IP });
|
||||
dgvCams.Location = new Point(38, 82);
|
||||
dgvCams.Name = "dgvCams";
|
||||
dgvCams.Size = new Size(284, 206);
|
||||
dgvCams.TabIndex = 1;
|
||||
//
|
||||
// CamName
|
||||
//
|
||||
CamName.HeaderText = "相机名";
|
||||
CamName.Name = "CamName";
|
||||
//
|
||||
// Serinum
|
||||
//
|
||||
Serinum.HeaderText = "序列号";
|
||||
Serinum.Name = "Serinum";
|
||||
//
|
||||
// IP
|
||||
//
|
||||
IP.HeaderText = "相机IP";
|
||||
IP.Name = "IP";
|
||||
//
|
||||
// COMBO_DEVICES
|
||||
//
|
||||
COMBO_DEVICES.DropDownStyle = ComboBoxStyle.DropDownList;
|
||||
COMBO_DEVICES.FormattingEnabled = true;
|
||||
COMBO_DEVICES.Location = new Point(100, 12);
|
||||
COMBO_DEVICES.Name = "COMBO_DEVICES";
|
||||
COMBO_DEVICES.Size = new Size(222, 25);
|
||||
COMBO_DEVICES.TabIndex = 0;
|
||||
//
|
||||
// btnsubmit
|
||||
//
|
||||
btnsubmit.Location = new Point(236, 312);
|
||||
btnsubmit.Name = "btnsubmit";
|
||||
btnsubmit.Size = new Size(86, 37);
|
||||
btnsubmit.TabIndex = 4;
|
||||
btnsubmit.Text = "确定";
|
||||
btnsubmit.UseVisualStyleBackColor = true;
|
||||
btnsubmit.Click += btnsubmit_Click;
|
||||
//
|
||||
// CamConfigFrm
|
||||
//
|
||||
AutoScaleDimensions = new SizeF(7F, 17F);
|
||||
AutoScaleMode = AutoScaleMode.Font;
|
||||
Controls.Add(tabs1);
|
||||
Name = "CamConfigFrm";
|
||||
Size = new Size(869, 521);
|
||||
Size = new Size(391, 407);
|
||||
tabs1.ResumeLayout(false);
|
||||
tabPage1.ResumeLayout(false);
|
||||
tabPage1.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)dgvCams).EndInit();
|
||||
ResumeLayout(false);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private AntdUI.Tabs tabs1;
|
||||
private AntdUI.TabPage tabPage1;
|
||||
private ComboBox COMBO_DEVICES;
|
||||
private Button btnRefreshCamList;
|
||||
private DataGridView dgvCams;
|
||||
private Label label1;
|
||||
private DataGridViewTextBoxColumn CamName;
|
||||
private DataGridViewTextBoxColumn Serinum;
|
||||
private DataGridViewTextBoxColumn IP;
|
||||
private Button btnsubmit;
|
||||
}
|
||||
}
|
||||
|
@ -1,20 +1,177 @@
|
||||
using System;
|
||||
using DH.Commons.Enums;
|
||||
using DVPCameraType;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Diagnostics;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using static System.Windows.Forms.VisualStyles.VisualStyleElement;
|
||||
|
||||
namespace DHSoftware.Views
|
||||
{
|
||||
|
||||
public partial class CamConfigFrm : UserControl
|
||||
{
|
||||
public int m_n_dev_count = 0;
|
||||
public static int m_CamCount = 0;
|
||||
public static dvpCameraInfo[] m_info = new dvpCameraInfo[16];
|
||||
|
||||
// 在窗体类中声明一个绑定列表(用于动态更新)
|
||||
private BindingList<CameraInfo> _cameraList = new BindingList<CameraInfo>();
|
||||
public CamConfigFrm()
|
||||
{
|
||||
InitializeComponent();
|
||||
// 添加 ComboBox 的项
|
||||
COMBO_DEVICES.Items.AddRange(new string[] { " 度申Do3", "海康Hik", "巴斯勒Basler", "虚拟相机" });
|
||||
|
||||
// 绑定 SelectedIndexChanged 事件
|
||||
COMBO_DEVICES.SelectedIndexChanged += ComboBox_SelectedIndexChanged;
|
||||
|
||||
dgvCams.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
|
||||
dgvCams.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
|
||||
dgvCams.DataSource = _cameraList; // 绑定数据源
|
||||
dgvCams.Location = new Point(38, 82);
|
||||
dgvCams.Name = "dgvCams";
|
||||
dgvCams.Size = new Size(284, 206);
|
||||
dgvCams.TabIndex = 1;
|
||||
}
|
||||
private void ComboBox_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (COMBO_DEVICES.SelectedItem == null) return;
|
||||
|
||||
string selectedMethod = COMBO_DEVICES.SelectedItem.ToString();
|
||||
switch (selectedMethod)
|
||||
{
|
||||
case "度申Do3":
|
||||
Do3Think();
|
||||
break;
|
||||
case "海康Hik":
|
||||
HiK();
|
||||
break;
|
||||
case "巴斯勒Basler":
|
||||
Basler();
|
||||
break;
|
||||
case "虚拟相机":
|
||||
Virtul();
|
||||
break;
|
||||
default:
|
||||
MessageBox.Show("未找到对应方法");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// 其他方法定义...
|
||||
private void Do3Think()
|
||||
{
|
||||
InitDevList();
|
||||
}
|
||||
|
||||
private void HiK()
|
||||
{
|
||||
|
||||
}
|
||||
private void Basler()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
private void Virtul()
|
||||
{
|
||||
|
||||
}
|
||||
private void btnRefreshCamList_Click(object sender, EventArgs e)
|
||||
{
|
||||
//搜索度申相机
|
||||
InitDevList();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 搜索度申相机
|
||||
/// </summary>
|
||||
// Initialize the device list.
|
||||
public void InitDevList()
|
||||
{
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
dvpStatus status;
|
||||
uint i, n = 0;
|
||||
dvpCameraInfo dev_info = new dvpCameraInfo();
|
||||
|
||||
// 清空旧数据
|
||||
_cameraList.Clear();
|
||||
|
||||
// Get the number of cameras that has been connected to a computer.
|
||||
status = DVPCamera.dvpRefresh(ref n);
|
||||
Debug.Assert(status == dvpStatus.DVP_STATUS_OK);
|
||||
m_n_dev_count = (int)n;
|
||||
if (status == dvpStatus.DVP_STATUS_OK)
|
||||
{
|
||||
m_CamCount = 0;
|
||||
for (i = 0; i < n; i++)
|
||||
{
|
||||
// Acquire each camera's information one by one.
|
||||
status = DVPCamera.dvpEnum(i, ref dev_info);
|
||||
|
||||
if (status == dvpStatus.DVP_STATUS_OK)
|
||||
{
|
||||
m_info[m_CamCount] = dev_info;
|
||||
|
||||
int item = -1;
|
||||
//if (!UserDefinedName.Checked)
|
||||
{
|
||||
// add FriendlyName
|
||||
item = COMBO_DEVICES.Items.Add(dev_info.FriendlyName);
|
||||
CameraInfo info = new CameraInfo
|
||||
{
|
||||
CamName = dev_info.FriendlyName,
|
||||
Serinum = dev_info.SerialNumber,
|
||||
// IP = dev_info.IP
|
||||
};
|
||||
|
||||
_cameraList.Add(info);
|
||||
|
||||
|
||||
}
|
||||
//else
|
||||
//{
|
||||
// // add User Define Name
|
||||
// item = COMBO_DEVICES.Items.Add(dev_info.UserID);
|
||||
//}
|
||||
|
||||
m_CamCount++;
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.Assert(status == dvpStatus.DVP_STATUS_OK);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (n == 0)
|
||||
{
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
private void btnsubmit_Click(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -117,4 +117,13 @@
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="CamName.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="Serinum.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="IP.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
</root>
|
185
DHSoftware/Views/CameraConfigControl.Designer.cs
generated
Normal file
185
DHSoftware/Views/CameraConfigControl.Designer.cs
generated
Normal file
@ -0,0 +1,185 @@
|
||||
namespace DHSoftware.Views
|
||||
{
|
||||
partial class CameraConfigControl
|
||||
{
|
||||
/// <summary>
|
||||
/// 必需的设计器变量。
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// 清理所有正在使用的资源。
|
||||
/// </summary>
|
||||
/// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region 组件设计器生成的代码
|
||||
|
||||
/// <summary>
|
||||
/// 设计器支持所需的方法 - 不要修改
|
||||
/// 使用代码编辑器修改此方法的内容。
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
label1 = new AntdUI.Label();
|
||||
comboBox1 = new ComboBox();
|
||||
switch1 = new AntdUI.Switch();
|
||||
label2 = new AntdUI.Label();
|
||||
inputNumber1 = new AntdUI.InputNumber();
|
||||
inputNumber2 = new AntdUI.InputNumber();
|
||||
label3 = new AntdUI.Label();
|
||||
inputNumber3 = new AntdUI.InputNumber();
|
||||
label4 = new AntdUI.Label();
|
||||
label5 = new AntdUI.Label();
|
||||
label6 = new AntdUI.Label();
|
||||
switch2 = new AntdUI.Switch();
|
||||
SuspendLayout();
|
||||
//
|
||||
// label1
|
||||
//
|
||||
label1.Location = new Point(12, 12);
|
||||
label1.Name = "label1";
|
||||
label1.Size = new Size(58, 23);
|
||||
label1.TabIndex = 0;
|
||||
label1.Text = "相机名";
|
||||
//
|
||||
// comboBox1
|
||||
//
|
||||
comboBox1.FormattingEnabled = true;
|
||||
comboBox1.Location = new Point(76, 10);
|
||||
comboBox1.Name = "comboBox1";
|
||||
comboBox1.Size = new Size(165, 25);
|
||||
comboBox1.TabIndex = 1;
|
||||
//
|
||||
// switch1
|
||||
//
|
||||
switch1.Location = new Point(327, 10);
|
||||
switch1.Name = "switch1";
|
||||
switch1.Size = new Size(57, 23);
|
||||
switch1.TabIndex = 2;
|
||||
switch1.Text = "switch1";
|
||||
//
|
||||
// label2
|
||||
//
|
||||
label2.Location = new Point(12, 41);
|
||||
label2.Name = "label2";
|
||||
label2.Size = new Size(58, 38);
|
||||
label2.TabIndex = 3;
|
||||
label2.Text = "曝光时间";
|
||||
//
|
||||
// inputNumber1
|
||||
//
|
||||
inputNumber1.Location = new Point(76, 41);
|
||||
inputNumber1.Maximum = new decimal(new int[] { 10000000, 0, 0, 0 });
|
||||
inputNumber1.Minimum = new decimal(new int[] { 1, 0, 0, 0 });
|
||||
inputNumber1.Name = "inputNumber1";
|
||||
inputNumber1.Size = new Size(165, 38);
|
||||
inputNumber1.TabIndex = 4;
|
||||
inputNumber1.Text = "200";
|
||||
inputNumber1.Value = new decimal(new int[] { 1, 0, 0, 0 });
|
||||
//
|
||||
// inputNumber2
|
||||
//
|
||||
inputNumber2.Location = new Point(76, 85);
|
||||
inputNumber2.Maximum = new decimal(new int[] { 16, 0, 0, 0 });
|
||||
inputNumber2.Minimum = new decimal(new int[] { 0, 0, 0, 0 });
|
||||
inputNumber2.Name = "inputNumber2";
|
||||
inputNumber2.Size = new Size(165, 38);
|
||||
inputNumber2.TabIndex = 6;
|
||||
inputNumber2.Text = "6";
|
||||
//
|
||||
// label3
|
||||
//
|
||||
label3.Location = new Point(12, 85);
|
||||
label3.Name = "label3";
|
||||
label3.Size = new Size(58, 38);
|
||||
label3.TabIndex = 5;
|
||||
label3.Text = "增益";
|
||||
//
|
||||
// inputNumber3
|
||||
//
|
||||
inputNumber3.Increment = new decimal(new int[] { 90, 0, 0, 0 });
|
||||
inputNumber3.Location = new Point(76, 129);
|
||||
inputNumber3.Maximum = new decimal(new int[] { 360, 0, 0, 0 });
|
||||
inputNumber3.Minimum = new decimal(new int[] { 0, 0, 0, 0 });
|
||||
inputNumber3.Name = "inputNumber3";
|
||||
inputNumber3.Size = new Size(165, 38);
|
||||
inputNumber3.TabIndex = 8;
|
||||
inputNumber3.Text = "0";
|
||||
//
|
||||
// label4
|
||||
//
|
||||
label4.Location = new Point(12, 129);
|
||||
label4.Name = "label4";
|
||||
label4.Size = new Size(58, 38);
|
||||
label4.TabIndex = 7;
|
||||
label4.Text = "旋转";
|
||||
//
|
||||
// label5
|
||||
//
|
||||
label5.Location = new Point(263, 3);
|
||||
label5.Name = "label5";
|
||||
label5.Size = new Size(58, 36);
|
||||
label5.TabIndex = 9;
|
||||
label5.Text = "相机启用";
|
||||
//
|
||||
// label6
|
||||
//
|
||||
label6.Location = new Point(263, 45);
|
||||
label6.Name = "label6";
|
||||
label6.Size = new Size(58, 36);
|
||||
label6.TabIndex = 11;
|
||||
label6.Text = "保存原图";
|
||||
//
|
||||
// switch2
|
||||
//
|
||||
switch2.Location = new Point(327, 52);
|
||||
switch2.Name = "switch2";
|
||||
switch2.Size = new Size(57, 23);
|
||||
switch2.TabIndex = 10;
|
||||
switch2.Text = "switch2";
|
||||
//
|
||||
// CameraConfigControl
|
||||
//
|
||||
AutoScaleDimensions = new SizeF(7F, 17F);
|
||||
AutoScaleMode = AutoScaleMode.Font;
|
||||
Controls.Add(label6);
|
||||
Controls.Add(switch2);
|
||||
Controls.Add(label5);
|
||||
Controls.Add(inputNumber3);
|
||||
Controls.Add(label4);
|
||||
Controls.Add(inputNumber2);
|
||||
Controls.Add(label3);
|
||||
Controls.Add(inputNumber1);
|
||||
Controls.Add(label2);
|
||||
Controls.Add(switch1);
|
||||
Controls.Add(comboBox1);
|
||||
Controls.Add(label1);
|
||||
Name = "CameraConfigControl";
|
||||
Size = new Size(620, 201);
|
||||
ResumeLayout(false);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private AntdUI.Label label1;
|
||||
private ComboBox comboBox1;
|
||||
private AntdUI.Switch switch1;
|
||||
private AntdUI.Label label2;
|
||||
private AntdUI.InputNumber inputNumber1;
|
||||
private AntdUI.InputNumber inputNumber2;
|
||||
private AntdUI.Label label3;
|
||||
private AntdUI.InputNumber inputNumber3;
|
||||
private AntdUI.Label label4;
|
||||
private AntdUI.Label label5;
|
||||
private AntdUI.Label label6;
|
||||
private AntdUI.Switch switch2;
|
||||
}
|
||||
}
|
127
DHSoftware/Views/CameraConfigControl.cs
Normal file
127
DHSoftware/Views/CameraConfigControl.cs
Normal file
@ -0,0 +1,127 @@
|
||||
using AntdUI;
|
||||
using DH.Devices.Devices;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace DHSoftware.Views
|
||||
{
|
||||
public partial class CameraConfigControl : UserControl
|
||||
{
|
||||
public CameraConfigControl()
|
||||
{
|
||||
InitializeComponent();
|
||||
// InitTableColumns();
|
||||
InitData();
|
||||
}
|
||||
AntList<CameraBase> antList = null;
|
||||
CameraBase curUser;
|
||||
//private void InitTableColumns()
|
||||
//{
|
||||
// table_base.Columns = new ColumnCollection() {
|
||||
// new ColumnCheck("Selected"){Fixed = true},
|
||||
// new Column("CameraName", "相机名", ColumnAlign.Center)
|
||||
// {
|
||||
// Width="120",
|
||||
// //设置树节点,名称需和User里的User[]名称保持一致
|
||||
// KeyTree = "Users"
|
||||
// },
|
||||
// new Column("CameraIP", "相机IP",ColumnAlign.Center),
|
||||
// new Column("Gain", "增益"){
|
||||
// Width = "120",
|
||||
// LineBreak = true,
|
||||
// },
|
||||
// new ColumnSwitch("IsHardwareTrigger", "硬触发", ColumnAlign.Center){
|
||||
|
||||
// },
|
||||
// new Column("RotateImage", "旋转",ColumnAlign.Center),
|
||||
// new Column("Exposure", "曝光",ColumnAlign.Center),
|
||||
// //new Column("CellBadge", "徽标",ColumnAlign.Center),
|
||||
// //new Column("CellText", "富文本")
|
||||
// //{
|
||||
// // ColAlign = ColumnAlign.Center,//支持表头位置单独设置
|
||||
// //},
|
||||
// //new Column("CellProgress", "进度条",ColumnAlign.Center),
|
||||
// //new Column("CellDivider", "分割线",ColumnAlign.Center),
|
||||
// //new Column("CellLinks", "链接", ColumnAlign.Center)
|
||||
// //{
|
||||
// // Fixed = true,//冻结列
|
||||
// //},
|
||||
// };
|
||||
//}
|
||||
private void InitData()
|
||||
{
|
||||
antList = new AntList<CameraBase>();
|
||||
|
||||
for (int i = 0; i < 10; i++)
|
||||
{
|
||||
antList.Add(new CameraBase
|
||||
{
|
||||
CameraName = "相机1",
|
||||
CameraIP = "",
|
||||
Gain = 6,
|
||||
IsHardwareTrigger = true,
|
||||
RotateImage = 50,
|
||||
Exposure = 100,
|
||||
|
||||
|
||||
//CellLinks = new CellLink[] {new CellLink("https://gitee.com/antdui/AntdUI", "AntdUI"),
|
||||
//new CellButton(Guid.NewGuid().ToString(),"编辑",TTypeMini.Primary),
|
||||
//new CellButton(Guid.NewGuid().ToString(), "徽标", TTypeMini.Success)
|
||||
//{
|
||||
// //支持所有单元格控件
|
||||
// DropDownItems = new ISelectItem[]
|
||||
// {
|
||||
// new AntdUI.SelectItem(TState.Default),
|
||||
// new AntdUI.SelectItem(TState.Primary),
|
||||
// new AntdUI.SelectItem(TState.Success),
|
||||
// new AntdUI.SelectItem(TState.Error),
|
||||
// new AntdUI.SelectItem(TState.Warn),
|
||||
// new AntdUI.SelectItem(TState.Processing),
|
||||
|
||||
// },
|
||||
// DropDownValueChanged = (value) =>
|
||||
// {
|
||||
// string badge = value.ToString();
|
||||
// //switch(badge) {
|
||||
// //case "Default":
|
||||
// // curUser.CellBadge = new CellBadge(TState.Default, badge); break;
|
||||
// //case "Primary":
|
||||
// // curUser.CellBadge = new CellBadge(TState.Primary, badge); break;
|
||||
// //case "Success":
|
||||
// // curUser.CellBadge = new CellBadge(TState.Success, badge); break;
|
||||
// //case "Error":
|
||||
// // curUser.CellBadge = new CellBadge(TState.Error, badge); break;
|
||||
// //case "Warn":
|
||||
// // curUser.CellBadge = new CellBadge(TState.Warn, badge); break;
|
||||
// //case "Processing":
|
||||
// // curUser.CellBadge = new CellBadge(TState.Processing, badge); break;
|
||||
// //}
|
||||
// }
|
||||
//},
|
||||
//new CellButton(Guid.NewGuid().ToString(),"删除",TTypeMini.Error),
|
||||
//new CellButton(Guid.NewGuid().ToString(),"查看图片",TTypeMini.Primary)},
|
||||
//value:0-1
|
||||
// CellProgress = new CellProgress(0.5f),
|
||||
// CellDivider = new CellDivider(),
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
//设置树数据,可为任意行设置
|
||||
|
||||
// antList[1].Users = subUsers.ToArray();
|
||||
// table_base.Binding(antList);
|
||||
|
||||
//设置行禁用
|
||||
// table_base.SetRowEnable(0, false, true);
|
||||
}
|
||||
}
|
||||
}
|
120
DHSoftware/Views/CameraConfigControl.resx
Normal file
120
DHSoftware/Views/CameraConfigControl.resx
Normal file
@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
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
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
291
DHSoftware/Views/DetectConfigControl.Designer.cs
generated
Normal file
291
DHSoftware/Views/DetectConfigControl.Designer.cs
generated
Normal file
@ -0,0 +1,291 @@
|
||||
namespace DHSoftware.Views
|
||||
{
|
||||
partial class DetectConfigControl
|
||||
{
|
||||
/// <summary>
|
||||
/// 必需的设计器变量。
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// 清理所有正在使用的资源。
|
||||
/// </summary>
|
||||
/// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region 组件设计器生成的代码
|
||||
|
||||
/// <summary>
|
||||
/// 设计器支持所需的方法 - 不要修改
|
||||
/// 使用代码编辑器修改此方法的内容。
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
panel1 = new Panel();
|
||||
label1 = new AntdUI.Label();
|
||||
tbxPrePath = new TextBox();
|
||||
btnPreOpen = new AntdUI.Button();
|
||||
label5 = new AntdUI.Label();
|
||||
comboBox1 = new ComboBox();
|
||||
label6 = new AntdUI.Label();
|
||||
textBox1 = new TextBox();
|
||||
label8 = new AntdUI.Label();
|
||||
switch1 = new AntdUI.Switch();
|
||||
label7 = new AntdUI.Label();
|
||||
switch2 = new AntdUI.Switch();
|
||||
label9 = new AntdUI.Label();
|
||||
switch3 = new AntdUI.Switch();
|
||||
label10 = new AntdUI.Label();
|
||||
switch4 = new AntdUI.Switch();
|
||||
panel2 = new Panel();
|
||||
label2 = new Label();
|
||||
button2 = new AntdUI.Button();
|
||||
table1 = new AntdUI.Table();
|
||||
button1 = new AntdUI.Button();
|
||||
button3 = new AntdUI.Button();
|
||||
panel1.SuspendLayout();
|
||||
panel2.SuspendLayout();
|
||||
SuspendLayout();
|
||||
//
|
||||
// panel1
|
||||
//
|
||||
panel1.Controls.Add(button3);
|
||||
panel1.Controls.Add(panel2);
|
||||
panel1.Controls.Add(label10);
|
||||
panel1.Controls.Add(switch4);
|
||||
panel1.Controls.Add(label9);
|
||||
panel1.Controls.Add(switch3);
|
||||
panel1.Controls.Add(label7);
|
||||
panel1.Controls.Add(switch2);
|
||||
panel1.Controls.Add(label8);
|
||||
panel1.Controls.Add(switch1);
|
||||
panel1.Controls.Add(textBox1);
|
||||
panel1.Controls.Add(label6);
|
||||
panel1.Controls.Add(comboBox1);
|
||||
panel1.Controls.Add(label5);
|
||||
panel1.Controls.Add(btnPreOpen);
|
||||
panel1.Controls.Add(tbxPrePath);
|
||||
panel1.Controls.Add(label1);
|
||||
panel1.Dock = DockStyle.Fill;
|
||||
panel1.Location = new Point(0, 0);
|
||||
panel1.Name = "panel1";
|
||||
panel1.Size = new Size(785, 445);
|
||||
panel1.TabIndex = 0;
|
||||
//
|
||||
// label1
|
||||
//
|
||||
label1.Location = new Point(17, 41);
|
||||
label1.Name = "label1";
|
||||
label1.Size = new Size(73, 23);
|
||||
label1.TabIndex = 9;
|
||||
label1.Text = "模型路径";
|
||||
//
|
||||
// tbxPrePath
|
||||
//
|
||||
tbxPrePath.Location = new Point(96, 41);
|
||||
tbxPrePath.Name = "tbxPrePath";
|
||||
tbxPrePath.Size = new Size(498, 23);
|
||||
tbxPrePath.TabIndex = 17;
|
||||
//
|
||||
// btnPreOpen
|
||||
//
|
||||
btnPreOpen.Location = new Point(613, 41);
|
||||
btnPreOpen.Name = "btnPreOpen";
|
||||
btnPreOpen.Size = new Size(46, 23);
|
||||
btnPreOpen.TabIndex = 22;
|
||||
btnPreOpen.Text = "...";
|
||||
//
|
||||
// label5
|
||||
//
|
||||
label5.Location = new Point(333, 12);
|
||||
label5.Name = "label5";
|
||||
label5.Size = new Size(73, 23);
|
||||
label5.TabIndex = 23;
|
||||
label5.Text = "目标类型";
|
||||
//
|
||||
// comboBox1
|
||||
//
|
||||
comboBox1.FormattingEnabled = true;
|
||||
comboBox1.Location = new Point(402, 10);
|
||||
comboBox1.Name = "comboBox1";
|
||||
comboBox1.Size = new Size(188, 25);
|
||||
comboBox1.TabIndex = 24;
|
||||
//
|
||||
// label6
|
||||
//
|
||||
label6.Location = new Point(17, 12);
|
||||
label6.Name = "label6";
|
||||
label6.Size = new Size(58, 23);
|
||||
label6.TabIndex = 25;
|
||||
label6.Text = "检测名称";
|
||||
//
|
||||
// textBox1
|
||||
//
|
||||
textBox1.Location = new Point(96, 12);
|
||||
textBox1.Name = "textBox1";
|
||||
textBox1.Size = new Size(211, 23);
|
||||
textBox1.TabIndex = 26;
|
||||
//
|
||||
// label8
|
||||
//
|
||||
label8.Location = new Point(17, 70);
|
||||
label8.Name = "label8";
|
||||
label8.Size = new Size(58, 23);
|
||||
label8.TabIndex = 28;
|
||||
label8.Text = "模型启用";
|
||||
//
|
||||
// switch1
|
||||
//
|
||||
switch1.Location = new Point(96, 70);
|
||||
switch1.Name = "switch1";
|
||||
switch1.Size = new Size(57, 23);
|
||||
switch1.TabIndex = 27;
|
||||
switch1.Text = "switch1";
|
||||
//
|
||||
// label7
|
||||
//
|
||||
label7.Location = new Point(179, 70);
|
||||
label7.Name = "label7";
|
||||
label7.Size = new Size(58, 23);
|
||||
label7.TabIndex = 30;
|
||||
label7.Text = "数据保存";
|
||||
//
|
||||
// switch2
|
||||
//
|
||||
switch2.Location = new Point(258, 70);
|
||||
switch2.Name = "switch2";
|
||||
switch2.Size = new Size(57, 23);
|
||||
switch2.TabIndex = 29;
|
||||
switch2.Text = "switch2";
|
||||
//
|
||||
// label9
|
||||
//
|
||||
label9.Location = new Point(333, 70);
|
||||
label9.Name = "label9";
|
||||
label9.Size = new Size(73, 23);
|
||||
label9.TabIndex = 32;
|
||||
label9.Text = "保存OK原图";
|
||||
//
|
||||
// switch3
|
||||
//
|
||||
switch3.Location = new Point(412, 70);
|
||||
switch3.Name = "switch3";
|
||||
switch3.Size = new Size(57, 23);
|
||||
switch3.TabIndex = 31;
|
||||
switch3.Text = "switch3";
|
||||
//
|
||||
// label10
|
||||
//
|
||||
label10.Location = new Point(487, 70);
|
||||
label10.Name = "label10";
|
||||
label10.Size = new Size(73, 23);
|
||||
label10.TabIndex = 34;
|
||||
label10.Text = "保存NG原图";
|
||||
//
|
||||
// switch4
|
||||
//
|
||||
switch4.Location = new Point(566, 70);
|
||||
switch4.Name = "switch4";
|
||||
switch4.Size = new Size(57, 23);
|
||||
switch4.TabIndex = 33;
|
||||
switch4.Text = "switch4";
|
||||
//
|
||||
// panel2
|
||||
//
|
||||
panel2.Controls.Add(label2);
|
||||
panel2.Controls.Add(button2);
|
||||
panel2.Controls.Add(table1);
|
||||
panel2.Controls.Add(button1);
|
||||
panel2.Location = new Point(17, 141);
|
||||
panel2.Name = "panel2";
|
||||
panel2.Size = new Size(577, 286);
|
||||
panel2.TabIndex = 35;
|
||||
//
|
||||
// label2
|
||||
//
|
||||
label2.AutoSize = true;
|
||||
label2.Location = new Point(3, 5);
|
||||
label2.Name = "label2";
|
||||
label2.Size = new Size(56, 17);
|
||||
label2.TabIndex = 25;
|
||||
label2.Text = "模型参数";
|
||||
//
|
||||
// button2
|
||||
//
|
||||
button2.Location = new Point(93, 25);
|
||||
button2.Name = "button2";
|
||||
button2.Size = new Size(84, 34);
|
||||
button2.TabIndex = 24;
|
||||
button2.Text = "删除";
|
||||
//
|
||||
// table1
|
||||
//
|
||||
table1.Location = new Point(3, 65);
|
||||
table1.Name = "table1";
|
||||
table1.Size = new Size(570, 218);
|
||||
table1.TabIndex = 22;
|
||||
table1.Text = "table1";
|
||||
//
|
||||
// button1
|
||||
//
|
||||
button1.Location = new Point(3, 25);
|
||||
button1.Name = "button1";
|
||||
button1.Size = new Size(84, 34);
|
||||
button1.TabIndex = 23;
|
||||
button1.Text = "新增";
|
||||
//
|
||||
// button3
|
||||
//
|
||||
button3.Location = new Point(472, 101);
|
||||
button3.Name = "button3";
|
||||
button3.Size = new Size(118, 34);
|
||||
button3.TabIndex = 37;
|
||||
button3.Text = "查看文件夹";
|
||||
//
|
||||
// DetectConfigControl
|
||||
//
|
||||
AutoScaleDimensions = new SizeF(7F, 17F);
|
||||
AutoScaleMode = AutoScaleMode.Font;
|
||||
Controls.Add(panel1);
|
||||
Name = "DetectConfigControl";
|
||||
Size = new Size(785, 445);
|
||||
panel1.ResumeLayout(false);
|
||||
panel1.PerformLayout();
|
||||
panel2.ResumeLayout(false);
|
||||
panel2.PerformLayout();
|
||||
ResumeLayout(false);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private Panel panel1;
|
||||
private AntdUI.Label label1;
|
||||
private TextBox tbxPrePath;
|
||||
private TextBox textBox1;
|
||||
private AntdUI.Label label6;
|
||||
private ComboBox comboBox1;
|
||||
private AntdUI.Label label5;
|
||||
private AntdUI.Button btnPreOpen;
|
||||
private AntdUI.Label label7;
|
||||
private AntdUI.Switch switch2;
|
||||
private AntdUI.Label label8;
|
||||
private AntdUI.Switch switch1;
|
||||
private AntdUI.Label label10;
|
||||
private AntdUI.Switch switch4;
|
||||
private AntdUI.Label label9;
|
||||
private AntdUI.Switch switch3;
|
||||
private Panel panel2;
|
||||
private Label label2;
|
||||
private AntdUI.Button button2;
|
||||
private AntdUI.Table table1;
|
||||
private AntdUI.Button button1;
|
||||
private AntdUI.Button button3;
|
||||
}
|
||||
}
|
20
DHSoftware/Views/DetectConfigControl.cs
Normal file
20
DHSoftware/Views/DetectConfigControl.cs
Normal file
@ -0,0 +1,20 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace DHSoftware.Views
|
||||
{
|
||||
public partial class DetectConfigControl : UserControl
|
||||
{
|
||||
public DetectConfigControl()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
120
DHSoftware/Views/DetectConfigControl.resx
Normal file
120
DHSoftware/Views/DetectConfigControl.resx
Normal file
@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
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
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
694
DHSoftware/Views/FloatButtonDemo.Designer.cs
generated
Normal file
694
DHSoftware/Views/FloatButtonDemo.Designer.cs
generated
Normal file
@ -0,0 +1,694 @@
|
||||
namespace AntdUIDemo.Views
|
||||
{
|
||||
partial class FloatButtonDemo
|
||||
{
|
||||
/// <summary>
|
||||
/// 必需的设计器变量。
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// 清理所有正在使用的资源。
|
||||
/// </summary>
|
||||
/// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region 组件设计器生成的代码
|
||||
|
||||
/// <summary>
|
||||
/// 设计器支持所需的方法 - 不要修改
|
||||
/// 使用代码编辑器修改此方法的内容。
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.header1 = new AntdUI.PageHeader();
|
||||
this.stackPanel1 = new AntdUI.StackPanel();
|
||||
this.stackPanel2 = new AntdUI.StackPanel();
|
||||
this.buttonCZ = new AntdUI.Button();
|
||||
this.buttonClose = new AntdUI.Button();
|
||||
this.buttonOpen = new AntdUI.Button();
|
||||
this.stackPanel8 = new AntdUI.StackPanel();
|
||||
this.switch_enabled = new AntdUI.Switch();
|
||||
this.label18 = new AntdUI.Label();
|
||||
this.colorPicker = new AntdUI.ColorPicker();
|
||||
this.label16 = new AntdUI.Label();
|
||||
this.stackPanel6 = new AntdUI.StackPanel();
|
||||
this.switch_loading = new AntdUI.Switch();
|
||||
this.label2 = new AntdUI.Label();
|
||||
this.input_badgesize = new AntdUI.InputNumber();
|
||||
this.label15 = new AntdUI.Label();
|
||||
this.input_badge = new AntdUI.Input();
|
||||
this.label17 = new AntdUI.Label();
|
||||
this.stackPanel5 = new AntdUI.StackPanel();
|
||||
this.switch_round = new AntdUI.Switch();
|
||||
this.label14 = new AntdUI.Label();
|
||||
this.select_type = new AntdUI.Select();
|
||||
this.label13 = new AntdUI.Label();
|
||||
this.input_radius = new AntdUI.InputNumber();
|
||||
this.label12 = new AntdUI.Label();
|
||||
this.label11 = new AntdUI.Label();
|
||||
this.stackPanel7 = new AntdUI.StackPanel();
|
||||
this.input_gap = new AntdUI.InputNumber();
|
||||
this.label20 = new AntdUI.Label();
|
||||
this.stackPanel4 = new AntdUI.StackPanel();
|
||||
this.switch_topmost = new AntdUI.Switch();
|
||||
this.label6 = new AntdUI.Label();
|
||||
this.input_my = new AntdUI.InputNumber();
|
||||
this.label8 = new AntdUI.Label();
|
||||
this.input_size = new AntdUI.InputNumber();
|
||||
this.label9 = new AntdUI.Label();
|
||||
this.stackPanel3 = new AntdUI.StackPanel();
|
||||
this.switch_vertical = new AntdUI.Switch();
|
||||
this.label5 = new AntdUI.Label();
|
||||
this.input_mx = new AntdUI.InputNumber();
|
||||
this.label7 = new AntdUI.Label();
|
||||
this.select_align = new AntdUI.Select();
|
||||
this.label10 = new AntdUI.Label();
|
||||
this.label4 = new AntdUI.Label();
|
||||
this.label3 = new AntdUI.Label();
|
||||
this.stackPanel1.SuspendLayout();
|
||||
this.stackPanel2.SuspendLayout();
|
||||
this.stackPanel8.SuspendLayout();
|
||||
this.stackPanel6.SuspendLayout();
|
||||
this.stackPanel5.SuspendLayout();
|
||||
this.stackPanel7.SuspendLayout();
|
||||
this.stackPanel4.SuspendLayout();
|
||||
this.stackPanel3.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// header1
|
||||
//
|
||||
this.header1.Description = "悬浮于页面上方的按钮。";
|
||||
this.header1.DividerShow = true;
|
||||
this.header1.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.header1.Font = new System.Drawing.Font("Microsoft YaHei UI", 12F);
|
||||
this.header1.LocalizationDescription = "FloatButton.Description";
|
||||
this.header1.LocalizationText = "FloatButton.Text";
|
||||
this.header1.Location = new System.Drawing.Point(0, 0);
|
||||
this.header1.Name = "header1";
|
||||
this.header1.Padding = new System.Windows.Forms.Padding(0, 0, 0, 10);
|
||||
this.header1.Size = new System.Drawing.Size(750, 74);
|
||||
this.header1.TabIndex = 27;
|
||||
this.header1.Text = "FloatButton 悬浮按钮";
|
||||
this.header1.UseTitleFont = true;
|
||||
//
|
||||
// stackPanel1
|
||||
//
|
||||
this.stackPanel1.Controls.Add(this.stackPanel2);
|
||||
this.stackPanel1.Controls.Add(this.stackPanel8);
|
||||
this.stackPanel1.Controls.Add(this.stackPanel6);
|
||||
this.stackPanel1.Controls.Add(this.stackPanel5);
|
||||
this.stackPanel1.Controls.Add(this.label11);
|
||||
this.stackPanel1.Controls.Add(this.stackPanel7);
|
||||
this.stackPanel1.Controls.Add(this.stackPanel4);
|
||||
this.stackPanel1.Controls.Add(this.stackPanel3);
|
||||
this.stackPanel1.Controls.Add(this.label4);
|
||||
this.stackPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.stackPanel1.Location = new System.Drawing.Point(0, 104);
|
||||
this.stackPanel1.Name = "stackPanel1";
|
||||
this.stackPanel1.Size = new System.Drawing.Size(750, 388);
|
||||
this.stackPanel1.TabIndex = 0;
|
||||
this.stackPanel1.Text = "stackPanel1";
|
||||
this.stackPanel1.Vertical = true;
|
||||
//
|
||||
// stackPanel2
|
||||
//
|
||||
this.stackPanel2.Controls.Add(this.buttonCZ);
|
||||
this.stackPanel2.Controls.Add(this.buttonClose);
|
||||
this.stackPanel2.Controls.Add(this.buttonOpen);
|
||||
this.stackPanel2.Location = new System.Drawing.Point(3, 291);
|
||||
this.stackPanel2.Name = "stackPanel2";
|
||||
this.stackPanel2.Size = new System.Drawing.Size(744, 38);
|
||||
this.stackPanel2.TabIndex = 28;
|
||||
this.stackPanel2.Text = "stackPanel2";
|
||||
//
|
||||
// buttonCZ
|
||||
//
|
||||
this.buttonCZ.Font = new System.Drawing.Font("Microsoft YaHei UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.buttonCZ.LocalizationText = "reset";
|
||||
this.buttonCZ.Location = new System.Drawing.Point(165, 3);
|
||||
this.buttonCZ.Name = "buttonCZ";
|
||||
this.buttonCZ.Size = new System.Drawing.Size(75, 32);
|
||||
this.buttonCZ.TabIndex = 7;
|
||||
this.buttonCZ.Text = "重 置";
|
||||
this.buttonCZ.Type = AntdUI.TTypeMini.Warn;
|
||||
this.buttonCZ.WaveSize = 0;
|
||||
//
|
||||
// buttonClose
|
||||
//
|
||||
this.buttonClose.Font = new System.Drawing.Font("Microsoft YaHei UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.buttonClose.LocalizationText = "close";
|
||||
this.buttonClose.Location = new System.Drawing.Point(84, 3);
|
||||
this.buttonClose.Name = "buttonClose";
|
||||
this.buttonClose.Size = new System.Drawing.Size(75, 32);
|
||||
this.buttonClose.TabIndex = 6;
|
||||
this.buttonClose.Text = "关 闭";
|
||||
this.buttonClose.Type = AntdUI.TTypeMini.Error;
|
||||
this.buttonClose.WaveSize = 0;
|
||||
//
|
||||
// buttonOpen
|
||||
//
|
||||
this.buttonOpen.Font = new System.Drawing.Font("Microsoft YaHei UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.buttonOpen.LocalizationText = "open";
|
||||
this.buttonOpen.Location = new System.Drawing.Point(3, 3);
|
||||
this.buttonOpen.Name = "buttonOpen";
|
||||
this.buttonOpen.Size = new System.Drawing.Size(75, 32);
|
||||
this.buttonOpen.TabIndex = 5;
|
||||
this.buttonOpen.Text = "打 开";
|
||||
this.buttonOpen.Type = AntdUI.TTypeMini.Success;
|
||||
this.buttonOpen.WaveSize = 0;
|
||||
//
|
||||
// stackPanel8
|
||||
//
|
||||
this.stackPanel8.Controls.Add(this.switch_enabled);
|
||||
this.stackPanel8.Controls.Add(this.label18);
|
||||
this.stackPanel8.Controls.Add(this.colorPicker);
|
||||
this.stackPanel8.Controls.Add(this.label16);
|
||||
this.stackPanel8.Gap = 4;
|
||||
this.stackPanel8.Location = new System.Drawing.Point(3, 253);
|
||||
this.stackPanel8.Name = "stackPanel8";
|
||||
this.stackPanel8.Size = new System.Drawing.Size(744, 32);
|
||||
this.stackPanel8.TabIndex = 27;
|
||||
this.stackPanel8.Text = "stackPanel8";
|
||||
//
|
||||
// switch_enabled
|
||||
//
|
||||
this.switch_enabled.Location = new System.Drawing.Point(292, 3);
|
||||
this.switch_enabled.Name = "switch_enabled";
|
||||
this.switch_enabled.Size = new System.Drawing.Size(50, 26);
|
||||
this.switch_enabled.TabIndex = 32;
|
||||
this.switch_enabled.Text = "switch1";
|
||||
//
|
||||
// label18
|
||||
//
|
||||
this.label18.Font = new System.Drawing.Font("Microsoft YaHei UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.label18.Location = new System.Drawing.Point(190, 3);
|
||||
this.label18.Name = "label18";
|
||||
this.label18.Size = new System.Drawing.Size(92, 26);
|
||||
this.label18.TabIndex = 31;
|
||||
this.label18.Text = "Enabled";
|
||||
//
|
||||
// colorPicker
|
||||
//
|
||||
this.colorPicker.Font = new System.Drawing.Font("Microsoft YaHei UI", 9F);
|
||||
this.colorPicker.Location = new System.Drawing.Point(105, 3);
|
||||
this.colorPicker.Name = "colorPicker";
|
||||
this.colorPicker.Size = new System.Drawing.Size(75, 26);
|
||||
this.colorPicker.TabIndex = 30;
|
||||
this.colorPicker.Text = "colorPicker1";
|
||||
this.colorPicker.Value = System.Drawing.Color.FromArgb(((int)(((byte)(22)))), ((int)(((byte)(119)))), ((int)(((byte)(255)))));
|
||||
this.colorPicker.WaveSize = 0;
|
||||
//
|
||||
// label16
|
||||
//
|
||||
this.label16.Font = new System.Drawing.Font("Microsoft YaHei UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.label16.Location = new System.Drawing.Point(3, 3);
|
||||
this.label16.Name = "label16";
|
||||
this.label16.Size = new System.Drawing.Size(92, 26);
|
||||
this.label16.TabIndex = 29;
|
||||
this.label16.Text = "BadgeBack";
|
||||
//
|
||||
// stackPanel6
|
||||
//
|
||||
this.stackPanel6.Controls.Add(this.switch_loading);
|
||||
this.stackPanel6.Controls.Add(this.label2);
|
||||
this.stackPanel6.Controls.Add(this.input_badgesize);
|
||||
this.stackPanel6.Controls.Add(this.label15);
|
||||
this.stackPanel6.Controls.Add(this.input_badge);
|
||||
this.stackPanel6.Controls.Add(this.label17);
|
||||
this.stackPanel6.Gap = 4;
|
||||
this.stackPanel6.Location = new System.Drawing.Point(3, 215);
|
||||
this.stackPanel6.Name = "stackPanel6";
|
||||
this.stackPanel6.Size = new System.Drawing.Size(744, 32);
|
||||
this.stackPanel6.TabIndex = 25;
|
||||
this.stackPanel6.Text = "stackPanel6";
|
||||
//
|
||||
// switch_loading
|
||||
//
|
||||
this.switch_loading.Location = new System.Drawing.Point(492, 3);
|
||||
this.switch_loading.Name = "switch_loading";
|
||||
this.switch_loading.Size = new System.Drawing.Size(50, 26);
|
||||
this.switch_loading.TabIndex = 30;
|
||||
this.switch_loading.Text = "switch1";
|
||||
//
|
||||
// label2
|
||||
//
|
||||
this.label2.Font = new System.Drawing.Font("Microsoft YaHei UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.label2.Location = new System.Drawing.Point(390, 3);
|
||||
this.label2.Name = "label2";
|
||||
this.label2.Size = new System.Drawing.Size(92, 26);
|
||||
this.label2.TabIndex = 29;
|
||||
this.label2.Text = "Loading";
|
||||
//
|
||||
// input_badgesize
|
||||
//
|
||||
this.input_badgesize.DecimalPlaces = 1;
|
||||
this.input_badgesize.Font = new System.Drawing.Font("Microsoft YaHei UI", 9F);
|
||||
this.input_badgesize.Increment = new decimal(new int[] {
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
65536});
|
||||
this.input_badgesize.Location = new System.Drawing.Point(292, 3);
|
||||
this.input_badgesize.Minimum = new decimal(new int[] {
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.input_badgesize.Name = "input_badgesize";
|
||||
this.input_badgesize.Size = new System.Drawing.Size(88, 26);
|
||||
this.input_badgesize.TabIndex = 13;
|
||||
this.input_badgesize.Text = "0.6";
|
||||
this.input_badgesize.Value = new decimal(new int[] {
|
||||
6,
|
||||
0,
|
||||
0,
|
||||
65536});
|
||||
this.input_badgesize.WaveSize = 0;
|
||||
//
|
||||
// label15
|
||||
//
|
||||
this.label15.Font = new System.Drawing.Font("Microsoft YaHei UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.label15.Location = new System.Drawing.Point(190, 3);
|
||||
this.label15.Name = "label15";
|
||||
this.label15.Size = new System.Drawing.Size(92, 26);
|
||||
this.label15.TabIndex = 12;
|
||||
this.label15.Text = "BadgeSize";
|
||||
//
|
||||
// input_badge
|
||||
//
|
||||
this.input_badge.Font = new System.Drawing.Font("Microsoft YaHei UI", 9F);
|
||||
this.input_badge.Location = new System.Drawing.Point(105, 3);
|
||||
this.input_badge.Name = "input_badge";
|
||||
this.input_badge.Size = new System.Drawing.Size(75, 26);
|
||||
this.input_badge.TabIndex = 5;
|
||||
this.input_badge.WaveSize = 0;
|
||||
//
|
||||
// label17
|
||||
//
|
||||
this.label17.Font = new System.Drawing.Font("Microsoft YaHei UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.label17.Location = new System.Drawing.Point(3, 3);
|
||||
this.label17.Name = "label17";
|
||||
this.label17.Size = new System.Drawing.Size(92, 26);
|
||||
this.label17.TabIndex = 4;
|
||||
this.label17.Text = "Badge";
|
||||
//
|
||||
// stackPanel5
|
||||
//
|
||||
this.stackPanel5.Controls.Add(this.switch_round);
|
||||
this.stackPanel5.Controls.Add(this.label14);
|
||||
this.stackPanel5.Controls.Add(this.select_type);
|
||||
this.stackPanel5.Controls.Add(this.label13);
|
||||
this.stackPanel5.Controls.Add(this.input_radius);
|
||||
this.stackPanel5.Controls.Add(this.label12);
|
||||
this.stackPanel5.Gap = 4;
|
||||
this.stackPanel5.Location = new System.Drawing.Point(3, 177);
|
||||
this.stackPanel5.Name = "stackPanel5";
|
||||
this.stackPanel5.Size = new System.Drawing.Size(744, 32);
|
||||
this.stackPanel5.TabIndex = 24;
|
||||
this.stackPanel5.Text = "stackPanel5";
|
||||
//
|
||||
// switch_round
|
||||
//
|
||||
this.switch_round.Location = new System.Drawing.Point(492, 3);
|
||||
this.switch_round.Name = "switch_round";
|
||||
this.switch_round.Size = new System.Drawing.Size(50, 26);
|
||||
this.switch_round.TabIndex = 24;
|
||||
this.switch_round.Text = "switch1";
|
||||
//
|
||||
// label14
|
||||
//
|
||||
this.label14.Font = new System.Drawing.Font("Microsoft YaHei UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.label14.Location = new System.Drawing.Point(390, 3);
|
||||
this.label14.Name = "label14";
|
||||
this.label14.Size = new System.Drawing.Size(92, 26);
|
||||
this.label14.TabIndex = 23;
|
||||
this.label14.Text = "Round";
|
||||
//
|
||||
// select_type
|
||||
//
|
||||
this.select_type.Font = new System.Drawing.Font("Microsoft YaHei UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.select_type.List = true;
|
||||
this.select_type.Location = new System.Drawing.Point(292, 3);
|
||||
this.select_type.Name = "select_type";
|
||||
this.select_type.Size = new System.Drawing.Size(88, 26);
|
||||
this.select_type.TabIndex = 22;
|
||||
this.select_type.WaveSize = 0;
|
||||
//
|
||||
// label13
|
||||
//
|
||||
this.label13.Font = new System.Drawing.Font("Microsoft YaHei UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.label13.Location = new System.Drawing.Point(190, 3);
|
||||
this.label13.Name = "label13";
|
||||
this.label13.Size = new System.Drawing.Size(92, 26);
|
||||
this.label13.TabIndex = 21;
|
||||
this.label13.Text = "Type";
|
||||
//
|
||||
// input_radius
|
||||
//
|
||||
this.input_radius.Font = new System.Drawing.Font("Microsoft YaHei UI", 9F);
|
||||
this.input_radius.Location = new System.Drawing.Point(105, 3);
|
||||
this.input_radius.Minimum = new decimal(new int[] {
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.input_radius.Name = "input_radius";
|
||||
this.input_radius.Size = new System.Drawing.Size(75, 26);
|
||||
this.input_radius.TabIndex = 18;
|
||||
this.input_radius.Text = "6";
|
||||
this.input_radius.Value = new decimal(new int[] {
|
||||
6,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.input_radius.WaveSize = 0;
|
||||
//
|
||||
// label12
|
||||
//
|
||||
this.label12.Font = new System.Drawing.Font("Microsoft YaHei UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.label12.Location = new System.Drawing.Point(3, 3);
|
||||
this.label12.Name = "label12";
|
||||
this.label12.Size = new System.Drawing.Size(92, 26);
|
||||
this.label12.TabIndex = 17;
|
||||
this.label12.Text = "Radius";
|
||||
//
|
||||
// label11
|
||||
//
|
||||
this.label11.Font = new System.Drawing.Font("Microsoft YaHei UI", 12F);
|
||||
this.label11.LocalizationText = "button_option";
|
||||
this.label11.Location = new System.Drawing.Point(3, 147);
|
||||
this.label11.Name = "label11";
|
||||
this.label11.Size = new System.Drawing.Size(744, 24);
|
||||
this.label11.TabIndex = 23;
|
||||
this.label11.Text = "按钮配置";
|
||||
//
|
||||
// stackPanel7
|
||||
//
|
||||
this.stackPanel7.Controls.Add(this.input_gap);
|
||||
this.stackPanel7.Controls.Add(this.label20);
|
||||
this.stackPanel7.Gap = 4;
|
||||
this.stackPanel7.Location = new System.Drawing.Point(3, 109);
|
||||
this.stackPanel7.Name = "stackPanel7";
|
||||
this.stackPanel7.Size = new System.Drawing.Size(744, 32);
|
||||
this.stackPanel7.TabIndex = 22;
|
||||
this.stackPanel7.Text = "stackPanel7";
|
||||
//
|
||||
// input_gap
|
||||
//
|
||||
this.input_gap.Font = new System.Drawing.Font("Microsoft YaHei UI", 9F);
|
||||
this.input_gap.Location = new System.Drawing.Point(105, 3);
|
||||
this.input_gap.Minimum = new decimal(new int[] {
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.input_gap.Name = "input_gap";
|
||||
this.input_gap.Size = new System.Drawing.Size(75, 26);
|
||||
this.input_gap.TabIndex = 5;
|
||||
this.input_gap.Text = "40";
|
||||
this.input_gap.Value = new decimal(new int[] {
|
||||
40,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.input_gap.WaveSize = 0;
|
||||
//
|
||||
// label20
|
||||
//
|
||||
this.label20.Font = new System.Drawing.Font("Microsoft YaHei UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.label20.Location = new System.Drawing.Point(3, 3);
|
||||
this.label20.Name = "label20";
|
||||
this.label20.Size = new System.Drawing.Size(92, 26);
|
||||
this.label20.TabIndex = 4;
|
||||
this.label20.Text = "Gap";
|
||||
//
|
||||
// stackPanel4
|
||||
//
|
||||
this.stackPanel4.Controls.Add(this.switch_topmost);
|
||||
this.stackPanel4.Controls.Add(this.label6);
|
||||
this.stackPanel4.Controls.Add(this.input_my);
|
||||
this.stackPanel4.Controls.Add(this.label8);
|
||||
this.stackPanel4.Controls.Add(this.input_size);
|
||||
this.stackPanel4.Controls.Add(this.label9);
|
||||
this.stackPanel4.Gap = 4;
|
||||
this.stackPanel4.Location = new System.Drawing.Point(3, 71);
|
||||
this.stackPanel4.Name = "stackPanel4";
|
||||
this.stackPanel4.Size = new System.Drawing.Size(744, 32);
|
||||
this.stackPanel4.TabIndex = 17;
|
||||
this.stackPanel4.Text = "stackPanel4";
|
||||
//
|
||||
// switch_topmost
|
||||
//
|
||||
this.switch_topmost.Checked = true;
|
||||
this.switch_topmost.Location = new System.Drawing.Point(492, 3);
|
||||
this.switch_topmost.Name = "switch_topmost";
|
||||
this.switch_topmost.Size = new System.Drawing.Size(50, 26);
|
||||
this.switch_topmost.TabIndex = 15;
|
||||
this.switch_topmost.Text = "switch1";
|
||||
//
|
||||
// label6
|
||||
//
|
||||
this.label6.Font = new System.Drawing.Font("Microsoft YaHei UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.label6.Location = new System.Drawing.Point(390, 3);
|
||||
this.label6.Name = "label6";
|
||||
this.label6.Size = new System.Drawing.Size(92, 26);
|
||||
this.label6.TabIndex = 14;
|
||||
this.label6.Text = "TopMost";
|
||||
//
|
||||
// input_my
|
||||
//
|
||||
this.input_my.Font = new System.Drawing.Font("Microsoft YaHei UI", 9F);
|
||||
this.input_my.Location = new System.Drawing.Point(292, 3);
|
||||
this.input_my.Minimum = new decimal(new int[] {
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.input_my.Name = "input_my";
|
||||
this.input_my.Size = new System.Drawing.Size(88, 26);
|
||||
this.input_my.TabIndex = 9;
|
||||
this.input_my.Text = "24";
|
||||
this.input_my.Value = new decimal(new int[] {
|
||||
24,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.input_my.WaveSize = 0;
|
||||
//
|
||||
// label8
|
||||
//
|
||||
this.label8.Font = new System.Drawing.Font("Microsoft YaHei UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.label8.Location = new System.Drawing.Point(190, 3);
|
||||
this.label8.Name = "label8";
|
||||
this.label8.Size = new System.Drawing.Size(92, 26);
|
||||
this.label8.TabIndex = 8;
|
||||
this.label8.Text = "MarginY";
|
||||
//
|
||||
// input_size
|
||||
//
|
||||
this.input_size.Font = new System.Drawing.Font("Microsoft YaHei UI", 9F);
|
||||
this.input_size.Location = new System.Drawing.Point(105, 3);
|
||||
this.input_size.Minimum = new decimal(new int[] {
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.input_size.Name = "input_size";
|
||||
this.input_size.Size = new System.Drawing.Size(75, 26);
|
||||
this.input_size.TabIndex = 5;
|
||||
this.input_size.Text = "40";
|
||||
this.input_size.Value = new decimal(new int[] {
|
||||
40,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.input_size.WaveSize = 0;
|
||||
//
|
||||
// label9
|
||||
//
|
||||
this.label9.Font = new System.Drawing.Font("Microsoft YaHei UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.label9.Location = new System.Drawing.Point(3, 3);
|
||||
this.label9.Name = "label9";
|
||||
this.label9.Size = new System.Drawing.Size(92, 26);
|
||||
this.label9.TabIndex = 4;
|
||||
this.label9.Text = "Size";
|
||||
//
|
||||
// stackPanel3
|
||||
//
|
||||
this.stackPanel3.Controls.Add(this.switch_vertical);
|
||||
this.stackPanel3.Controls.Add(this.label5);
|
||||
this.stackPanel3.Controls.Add(this.input_mx);
|
||||
this.stackPanel3.Controls.Add(this.label7);
|
||||
this.stackPanel3.Controls.Add(this.select_align);
|
||||
this.stackPanel3.Controls.Add(this.label10);
|
||||
this.stackPanel3.Gap = 4;
|
||||
this.stackPanel3.Location = new System.Drawing.Point(3, 33);
|
||||
this.stackPanel3.Name = "stackPanel3";
|
||||
this.stackPanel3.Size = new System.Drawing.Size(744, 32);
|
||||
this.stackPanel3.TabIndex = 16;
|
||||
this.stackPanel3.Text = "stackPanel3";
|
||||
//
|
||||
// switch_vertical
|
||||
//
|
||||
this.switch_vertical.Checked = true;
|
||||
this.switch_vertical.Location = new System.Drawing.Point(492, 3);
|
||||
this.switch_vertical.Name = "switch_vertical";
|
||||
this.switch_vertical.Size = new System.Drawing.Size(50, 26);
|
||||
this.switch_vertical.TabIndex = 19;
|
||||
this.switch_vertical.Text = "switch1";
|
||||
//
|
||||
// label5
|
||||
//
|
||||
this.label5.Font = new System.Drawing.Font("Microsoft YaHei UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.label5.Location = new System.Drawing.Point(390, 3);
|
||||
this.label5.Name = "label5";
|
||||
this.label5.Size = new System.Drawing.Size(92, 26);
|
||||
this.label5.TabIndex = 18;
|
||||
this.label5.Text = "Vertical";
|
||||
//
|
||||
// input_mx
|
||||
//
|
||||
this.input_mx.Font = new System.Drawing.Font("Microsoft YaHei UI", 9F);
|
||||
this.input_mx.Location = new System.Drawing.Point(292, 3);
|
||||
this.input_mx.Minimum = new decimal(new int[] {
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.input_mx.Name = "input_mx";
|
||||
this.input_mx.Size = new System.Drawing.Size(88, 26);
|
||||
this.input_mx.TabIndex = 17;
|
||||
this.input_mx.Text = "24";
|
||||
this.input_mx.Value = new decimal(new int[] {
|
||||
24,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.input_mx.WaveSize = 0;
|
||||
//
|
||||
// label7
|
||||
//
|
||||
this.label7.Font = new System.Drawing.Font("Microsoft YaHei UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.label7.Location = new System.Drawing.Point(190, 3);
|
||||
this.label7.Name = "label7";
|
||||
this.label7.Size = new System.Drawing.Size(92, 26);
|
||||
this.label7.TabIndex = 16;
|
||||
this.label7.Text = "MarginX";
|
||||
//
|
||||
// select_align
|
||||
//
|
||||
this.select_align.Font = new System.Drawing.Font("Microsoft YaHei UI", 9F);
|
||||
this.select_align.List = true;
|
||||
this.select_align.Location = new System.Drawing.Point(105, 3);
|
||||
this.select_align.Name = "select_align";
|
||||
this.select_align.Size = new System.Drawing.Size(75, 26);
|
||||
this.select_align.TabIndex = 5;
|
||||
this.select_align.WaveSize = 0;
|
||||
//
|
||||
// label10
|
||||
//
|
||||
this.label10.Font = new System.Drawing.Font("Microsoft YaHei UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.label10.Location = new System.Drawing.Point(3, 3);
|
||||
this.label10.Name = "label10";
|
||||
this.label10.Size = new System.Drawing.Size(92, 26);
|
||||
this.label10.TabIndex = 4;
|
||||
this.label10.Text = "Align";
|
||||
//
|
||||
// label4
|
||||
//
|
||||
this.label4.Font = new System.Drawing.Font("Microsoft YaHei UI", 12F);
|
||||
this.label4.LocalizationText = "control_option";
|
||||
this.label4.Location = new System.Drawing.Point(3, 3);
|
||||
this.label4.Name = "label4";
|
||||
this.label4.Size = new System.Drawing.Size(744, 24);
|
||||
this.label4.TabIndex = 15;
|
||||
this.label4.Text = "控件配置";
|
||||
//
|
||||
// label3
|
||||
//
|
||||
this.label3.Dock = System.Windows.Forms.DockStyle.Top;
|
||||
this.label3.Font = new System.Drawing.Font("Microsoft YaHei UI", 9F);
|
||||
this.label3.LocalizationText = "FloatButton.Tip";
|
||||
this.label3.Location = new System.Drawing.Point(0, 74);
|
||||
this.label3.Name = "label3";
|
||||
this.label3.Padding = new System.Windows.Forms.Padding(0, 0, 0, 6);
|
||||
this.label3.Size = new System.Drawing.Size(750, 30);
|
||||
this.label3.TabIndex = 4;
|
||||
this.label3.Text = "FloatButton没有工具箱控件,使用代码方式调用。";
|
||||
//
|
||||
// FloatButtonDemo
|
||||
//
|
||||
this.Controls.Add(this.stackPanel1);
|
||||
this.Controls.Add(this.label3);
|
||||
this.Controls.Add(this.header1);
|
||||
this.Name = "FloatButtonDemo";
|
||||
this.Size = new System.Drawing.Size(750, 492);
|
||||
this.stackPanel1.ResumeLayout(false);
|
||||
this.stackPanel2.ResumeLayout(false);
|
||||
this.stackPanel8.ResumeLayout(false);
|
||||
this.stackPanel6.ResumeLayout(false);
|
||||
this.stackPanel5.ResumeLayout(false);
|
||||
this.stackPanel7.ResumeLayout(false);
|
||||
this.stackPanel4.ResumeLayout(false);
|
||||
this.stackPanel3.ResumeLayout(false);
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private AntdUI.PageHeader header1;
|
||||
private AntdUI.StackPanel stackPanel1;
|
||||
private AntdUI.Label label3;
|
||||
private AntdUI.StackPanel stackPanel4;
|
||||
private AntdUI.InputNumber input_my;
|
||||
private AntdUI.Label label8;
|
||||
private AntdUI.InputNumber input_size;
|
||||
private AntdUI.Label label9;
|
||||
private AntdUI.StackPanel stackPanel3;
|
||||
private AntdUI.Select select_align;
|
||||
private AntdUI.Label label10;
|
||||
private AntdUI.Label label4;
|
||||
private AntdUI.StackPanel stackPanel6;
|
||||
private AntdUI.InputNumber input_badgesize;
|
||||
private AntdUI.Label label15;
|
||||
private AntdUI.Input input_badge;
|
||||
private AntdUI.Label label17;
|
||||
private AntdUI.StackPanel stackPanel5;
|
||||
private AntdUI.Label label11;
|
||||
private AntdUI.StackPanel stackPanel7;
|
||||
private AntdUI.InputNumber input_gap;
|
||||
private AntdUI.Label label20;
|
||||
private AntdUI.InputNumber input_radius;
|
||||
private AntdUI.Label label12;
|
||||
private AntdUI.Switch switch_topmost;
|
||||
private AntdUI.Label label6;
|
||||
private AntdUI.Switch switch_vertical;
|
||||
private AntdUI.Label label5;
|
||||
private AntdUI.InputNumber input_mx;
|
||||
private AntdUI.Label label7;
|
||||
private AntdUI.Switch switch_round;
|
||||
private AntdUI.Label label14;
|
||||
private AntdUI.Select select_type;
|
||||
private AntdUI.Label label13;
|
||||
private AntdUI.StackPanel stackPanel2;
|
||||
private AntdUI.StackPanel stackPanel8;
|
||||
private AntdUI.Switch switch_enabled;
|
||||
private AntdUI.Label label18;
|
||||
private AntdUI.ColorPicker colorPicker;
|
||||
private AntdUI.Label label16;
|
||||
private AntdUI.Switch switch_loading;
|
||||
private AntdUI.Label label2;
|
||||
private AntdUI.Button buttonCZ;
|
||||
private AntdUI.Button buttonClose;
|
||||
private AntdUI.Button buttonOpen;
|
||||
}
|
||||
}
|
241
DHSoftware/Views/FloatButtonDemo.cs
Normal file
241
DHSoftware/Views/FloatButtonDemo.cs
Normal file
@ -0,0 +1,241 @@
|
||||
using AntdUI;
|
||||
using System;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace AntdUIDemo.Views
|
||||
{
|
||||
public partial class FloatButtonDemo : UserControl
|
||||
{
|
||||
private Window window;
|
||||
private FormFloatButton floatButtonForm = null;
|
||||
public FloatButtonDemo(Window _window)
|
||||
{
|
||||
window = _window;
|
||||
InitializeComponent();
|
||||
//初始化下拉框
|
||||
InitSelectItems();
|
||||
//设置默认值
|
||||
InitData();
|
||||
// 绑定事件
|
||||
BindEventHandler();
|
||||
}
|
||||
|
||||
private void BindEventHandler()
|
||||
{
|
||||
buttonOpen.Click += ButtonOpen_Click;
|
||||
buttonClose.Click += buttonClose_Click;
|
||||
buttonCZ.Click += buttonCZ_Click;
|
||||
|
||||
select_align.SelectedIndexChanged += select_intvalue_SelectedIndexChanged;
|
||||
select_type.SelectedIndexChanged += select_intvalue_SelectedIndexChanged;
|
||||
|
||||
switch_round.CheckedChanged += Switch_CheckedChanged;
|
||||
switch_vertical.CheckedChanged += Switch_CheckedChanged;
|
||||
switch_topmost.CheckedChanged += Switch_CheckedChanged;
|
||||
switch_enabled.CheckedChanged += Switch_CheckedChanged;
|
||||
switch_loading.CheckedChanged += Switch_CheckedChanged;
|
||||
|
||||
input_size.ValueChanged += input_decimalvalue_ValeChanged;
|
||||
input_mx.ValueChanged += input_decimalvalue_ValeChanged;
|
||||
input_my.ValueChanged += input_decimalvalue_ValeChanged;
|
||||
input_gap.ValueChanged += input_decimalvalue_ValeChanged;
|
||||
input_radius.ValueChanged += input_decimalvalue_ValeChanged;
|
||||
input_badgesize.ValueChanged += input_decimalvalue_ValeChanged;
|
||||
|
||||
input_badge.TextChanged += input_badge_TextChanged;
|
||||
|
||||
colorPicker.ValueChanged += colorPicker_ValueChanged;
|
||||
}
|
||||
|
||||
private void ButtonOpen_Click(object sender, EventArgs e)
|
||||
{
|
||||
LoadFloatButton();
|
||||
}
|
||||
|
||||
// 初始化下拉框
|
||||
private void InitSelectItems()
|
||||
{
|
||||
//初始化方向
|
||||
select_align.Items.Clear();
|
||||
foreach (TAlign align in Enum.GetValues(typeof(TAlign)))
|
||||
{
|
||||
select_align.Items.Add(align);
|
||||
}
|
||||
//初始化类型
|
||||
select_type.Items.Clear();
|
||||
foreach (TTypeMini type in Enum.GetValues(typeof(TTypeMini)))
|
||||
{
|
||||
select_type.Items.Add(type);
|
||||
}
|
||||
}
|
||||
|
||||
// 设置默认值
|
||||
private void InitData()
|
||||
{
|
||||
select_align.SelectedIndex = 7;
|
||||
select_type.SelectedIndex = 0;
|
||||
|
||||
switch_round.Checked = false;
|
||||
switch_vertical.Checked = true;
|
||||
switch_topmost.Checked = false;
|
||||
switch_enabled.Checked = true;
|
||||
switch_loading.Checked = false;
|
||||
|
||||
input_size.Value = 40;
|
||||
input_mx.Value = 24;
|
||||
input_my.Value = 24;
|
||||
input_gap.Value = 40;
|
||||
input_radius.Value = 6;
|
||||
input_badge.Text = "";
|
||||
input_badgesize.Value = 0.6m;
|
||||
colorPicker.Value = Color.FromArgb(22, 119, 255);
|
||||
}
|
||||
|
||||
// 加载浮动按钮
|
||||
private void LoadFloatButton()
|
||||
{
|
||||
if (floatButtonForm == null)
|
||||
{
|
||||
floatButtonForm = FloatButton.open(new FloatButton.Config(window, new FloatButton.ConfigBtn[]
|
||||
{
|
||||
// 使用 svg 图片
|
||||
// ConfigBtn第二个text参数默认设置为IconSvg,或者如下在配置里面设置IconSvg
|
||||
new FloatButton.ConfigBtn("button1","",true)
|
||||
{
|
||||
// isSvg设置为true,text参数会赋值给IconSvg,否则赋值给Text,所以需要单独设置Text
|
||||
Text = "SVG Picture",
|
||||
IconSvg = "<svg viewBox=\"0 0 1024 1024\"><path d=\"M511.878001 1023.989c-62.999385 0-124.098788-11.699886-181.698225-34.999658-55.699456-22.49978-105.798967-54.499468-148.798547-95.599067-43.099579-40.9996-76.899249-88.899132-100.599018-142.198611-24.59976-55.29946-36.999639-114.098886-36.999639-174.698294 0-76.79925 20.699798-152.498511 59.899415-219.197859 37.799631-64.099374 92.299099-119.098837 157.498462-158.598451 14.699856-8.999912 33.899669-4.299958 42.899581 10.499897 8.999912 14.699856 4.299958 33.899669-10.499897 42.899581-56.399449 34.199666-103.498989 81.599203-136.19867 137.098661-33.599672 56.999443-51.1995 121.798811-51.1995 187.39817 0 102.498999 41.99959 199.098056 118.298845 271.697347 76.699251 73.099286 178.798254 113.298894 287.497192 113.298893s210.797941-40.299606 287.497193-113.298893c76.299255-72.799289 118.298845-169.198348 118.298844-271.797346 0-130.298728-68.699329-250.797551-183.798205-322.296852-14.599857-9.099911-19.099813-28.299724-9.999902-42.99958 9.099911-14.599857 28.299724-19.099813 42.99958-9.999903 64.099374 39.799611 117.498853 94.599076 154.59849 158.398453 38.399625 66.099354 58.699427 140.998623 58.699427 217.09788 0 60.599408-12.499878 119.398834-36.999639 174.698294-23.699769 53.299479-57.499438 101.199012-100.599017 142.198612-42.99958 40.899601-93.099091 73.099286-148.798547 95.599066-57.799436 23.099774-118.998838 34.79966-181.998223 34.79966zM511.878001 506.394055c-17.199832 0-31.199695-13.899864-31.199695-31.199696v-443.995664c0-17.199832 13.899864-31.199695 31.199695-31.199695 17.199832 0 31.199695 13.899864 31.199696 31.199695v443.895665c0.099999 17.199832-13.999863 31.299694-31.199696 31.299695z\"></path></svg>",
|
||||
Tooltip = "SVG Button",
|
||||
Round = switch_round.Checked,
|
||||
Type = (TTypeMini)select_type.SelectedValue,
|
||||
Radius = (int)input_radius.Value,
|
||||
Badge = input_badge.Text==""? null:input_badge.Text,
|
||||
BadgeSize = (float)input_badgesize.Value,
|
||||
BadgeBack = colorPicker.Value,
|
||||
Enabled = switch_enabled.Checked,
|
||||
Loading = switch_loading.Checked,
|
||||
},
|
||||
// 使用资源图片
|
||||
new FloatButton.ConfigBtn("button2", DHSoftware.Properties.Resources.关闭)
|
||||
{
|
||||
Text = "Resource Picture",
|
||||
Tooltip = "Resource Picture Button",
|
||||
Round = switch_round.Checked,
|
||||
Type = (TTypeMini)select_type.SelectedValue,
|
||||
Radius = (int)input_radius.Value,
|
||||
Badge = input_badge.Text==""? null:input_badge.Text,
|
||||
BadgeSize = (float)input_badgesize.Value,
|
||||
BadgeBack = colorPicker.Value,
|
||||
Enabled = switch_enabled.Checked,
|
||||
Loading = switch_loading.Checked,
|
||||
},
|
||||
// 使用文本
|
||||
new FloatButton.ConfigBtn("button3", "Text")
|
||||
{
|
||||
Tooltip = "Text Button",
|
||||
Round = switch_round.Checked,
|
||||
Type = (TTypeMini)select_type.SelectedValue,
|
||||
Radius = (int)input_radius.Value,
|
||||
Badge = input_badge.Text==""? null:input_badge.Text,
|
||||
BadgeSize = (float)input_badgesize.Value,
|
||||
BadgeBack = colorPicker.Value,
|
||||
Enabled = switch_enabled.Checked,
|
||||
Loading = switch_loading.Checked,
|
||||
},
|
||||
//获取button示例,可以通过button的属性判断点击了哪个按钮,推荐用Name
|
||||
}, button =>
|
||||
{
|
||||
//回调事件
|
||||
AntdUI.Message.info(window, "Text:" + button.Text + ", Name:" + button.Name, autoClose: 3);
|
||||
})
|
||||
// 浮动全局配置
|
||||
{
|
||||
//字体
|
||||
Font = new Font("Microsoft YaHei UI", 9F, FontStyle.Regular, GraphicsUnit.Point),
|
||||
//附着控件
|
||||
Control = null,
|
||||
//位置
|
||||
Align = (TAlign)select_align.SelectedIndex,
|
||||
//是否垂直方向
|
||||
Vertical = switch_vertical.Checked,
|
||||
//是否置顶
|
||||
TopMost = switch_topmost.Checked,
|
||||
//尺寸大小
|
||||
Size = (int)input_size.Value,
|
||||
//相对于Align位置X轴偏移
|
||||
MarginX = (int)input_mx.Value,
|
||||
//相对于Align位置Y轴偏移
|
||||
MarginY = (int)input_my.Value,
|
||||
//按钮间距
|
||||
Gap = (int)input_gap.Value,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// 添加清理逻辑
|
||||
public void CloseFloatButtonForm()
|
||||
{
|
||||
if (InvokeRequired)
|
||||
{
|
||||
Invoke(new Action(CloseFloatButtonForm));
|
||||
}
|
||||
else
|
||||
{
|
||||
// Ensure that floatButtonForm is not null before attempting to close it
|
||||
if (floatButtonForm != null)
|
||||
{
|
||||
floatButtonForm.Close();
|
||||
floatButtonForm.Dispose();
|
||||
floatButtonForm = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#region EventHandler
|
||||
private void select_intvalue_SelectedIndexChanged(object sender, IntEventArgs e)
|
||||
{
|
||||
CloseFloatButtonForm();
|
||||
LoadFloatButton();
|
||||
}
|
||||
|
||||
private void Switch_CheckedChanged(object sender, BoolEventArgs e)
|
||||
{
|
||||
CloseFloatButtonForm();
|
||||
LoadFloatButton();
|
||||
}
|
||||
|
||||
private void colorPicker_ValueChanged(object sender, ColorEventArgs e)
|
||||
{
|
||||
CloseFloatButtonForm();
|
||||
LoadFloatButton();
|
||||
}
|
||||
|
||||
private void input_badge_TextChanged(object sender, EventArgs e)
|
||||
{
|
||||
CloseFloatButtonForm();
|
||||
LoadFloatButton();
|
||||
}
|
||||
|
||||
private void input_decimalvalue_ValeChanged(object sender, DecimalEventArgs e)
|
||||
{
|
||||
CloseFloatButtonForm();
|
||||
LoadFloatButton();
|
||||
}
|
||||
|
||||
// 重置
|
||||
private void buttonCZ_Click(object sender, EventArgs e)
|
||||
{
|
||||
InitData();
|
||||
CloseFloatButtonForm();
|
||||
LoadFloatButton();
|
||||
}
|
||||
|
||||
// 关闭
|
||||
private void buttonClose_Click(object sender, EventArgs e)
|
||||
{
|
||||
CloseFloatButtonForm();
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
120
DHSoftware/Views/FloatButtonDemo.resx
Normal file
120
DHSoftware/Views/FloatButtonDemo.resx
Normal file
@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
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
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
207
DHSoftware/Views/PreTreatUserControl.Designer.cs
generated
Normal file
207
DHSoftware/Views/PreTreatUserControl.Designer.cs
generated
Normal file
@ -0,0 +1,207 @@
|
||||
namespace DHSoftware.Views
|
||||
{
|
||||
partial class PreTreatUserControl
|
||||
{
|
||||
/// <summary>
|
||||
/// 必需的设计器变量。
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// 清理所有正在使用的资源。
|
||||
/// </summary>
|
||||
/// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region 组件设计器生成的代码
|
||||
|
||||
/// <summary>
|
||||
/// 设计器支持所需的方法 - 不要修改
|
||||
/// 使用代码编辑器修改此方法的内容。
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
btnPreOpen = new AntdUI.Button();
|
||||
tbxPrePath = new TextBox();
|
||||
label1 = new AntdUI.Label();
|
||||
panel1 = new Panel();
|
||||
table1 = new AntdUI.Table();
|
||||
button1 = new AntdUI.Button();
|
||||
button2 = new AntdUI.Button();
|
||||
panel2 = new Panel();
|
||||
label2 = new Label();
|
||||
panel3 = new Panel();
|
||||
label3 = new Label();
|
||||
button3 = new AntdUI.Button();
|
||||
table2 = new AntdUI.Table();
|
||||
button4 = new AntdUI.Button();
|
||||
panel1.SuspendLayout();
|
||||
panel2.SuspendLayout();
|
||||
panel3.SuspendLayout();
|
||||
SuspendLayout();
|
||||
//
|
||||
// btnPreOpen
|
||||
//
|
||||
btnPreOpen.Location = new Point(646, 17);
|
||||
btnPreOpen.Name = "btnPreOpen";
|
||||
btnPreOpen.Size = new Size(46, 23);
|
||||
btnPreOpen.TabIndex = 21;
|
||||
btnPreOpen.Text = "...";
|
||||
//
|
||||
// tbxPrePath
|
||||
//
|
||||
tbxPrePath.Location = new Point(91, 17);
|
||||
tbxPrePath.Name = "tbxPrePath";
|
||||
tbxPrePath.Size = new Size(549, 23);
|
||||
tbxPrePath.TabIndex = 20;
|
||||
//
|
||||
// label1
|
||||
//
|
||||
label1.Location = new Point(12, 17);
|
||||
label1.Name = "label1";
|
||||
label1.Size = new Size(73, 23);
|
||||
label1.TabIndex = 19;
|
||||
label1.Text = "预处理路径";
|
||||
//
|
||||
// panel1
|
||||
//
|
||||
panel1.Controls.Add(panel3);
|
||||
panel1.Controls.Add(panel2);
|
||||
panel1.Controls.Add(label1);
|
||||
panel1.Controls.Add(btnPreOpen);
|
||||
panel1.Controls.Add(tbxPrePath);
|
||||
panel1.Dock = DockStyle.Fill;
|
||||
panel1.Location = new Point(0, 0);
|
||||
panel1.Name = "panel1";
|
||||
panel1.Size = new Size(759, 243);
|
||||
panel1.TabIndex = 22;
|
||||
//
|
||||
// table1
|
||||
//
|
||||
table1.Location = new Point(3, 65);
|
||||
table1.Name = "table1";
|
||||
table1.Size = new Size(258, 126);
|
||||
table1.TabIndex = 22;
|
||||
table1.Text = "table1";
|
||||
//
|
||||
// button1
|
||||
//
|
||||
button1.Location = new Point(3, 25);
|
||||
button1.Name = "button1";
|
||||
button1.Size = new Size(84, 34);
|
||||
button1.TabIndex = 23;
|
||||
button1.Text = "新增";
|
||||
//
|
||||
// button2
|
||||
//
|
||||
button2.Location = new Point(93, 25);
|
||||
button2.Name = "button2";
|
||||
button2.Size = new Size(84, 34);
|
||||
button2.TabIndex = 24;
|
||||
button2.Text = "删除";
|
||||
//
|
||||
// panel2
|
||||
//
|
||||
panel2.Controls.Add(label2);
|
||||
panel2.Controls.Add(button2);
|
||||
panel2.Controls.Add(table1);
|
||||
panel2.Controls.Add(button1);
|
||||
panel2.Location = new Point(91, 46);
|
||||
panel2.Name = "panel2";
|
||||
panel2.Size = new Size(264, 194);
|
||||
panel2.TabIndex = 25;
|
||||
//
|
||||
// label2
|
||||
//
|
||||
label2.AutoSize = true;
|
||||
label2.Location = new Point(3, 5);
|
||||
label2.Name = "label2";
|
||||
label2.Size = new Size(56, 17);
|
||||
label2.TabIndex = 25;
|
||||
label2.Text = "输入参数";
|
||||
//
|
||||
// panel3
|
||||
//
|
||||
panel3.Controls.Add(label3);
|
||||
panel3.Controls.Add(button3);
|
||||
panel3.Controls.Add(table2);
|
||||
panel3.Controls.Add(button4);
|
||||
panel3.Location = new Point(379, 46);
|
||||
panel3.Name = "panel3";
|
||||
panel3.Size = new Size(264, 194);
|
||||
panel3.TabIndex = 26;
|
||||
//
|
||||
// label3
|
||||
//
|
||||
label3.AutoSize = true;
|
||||
label3.Location = new Point(3, 2);
|
||||
label3.Name = "label3";
|
||||
label3.Size = new Size(56, 17);
|
||||
label3.TabIndex = 25;
|
||||
label3.Text = "输出参数";
|
||||
//
|
||||
// button3
|
||||
//
|
||||
button3.Location = new Point(93, 25);
|
||||
button3.Name = "button3";
|
||||
button3.Size = new Size(84, 34);
|
||||
button3.TabIndex = 24;
|
||||
button3.Text = "删除";
|
||||
//
|
||||
// table2
|
||||
//
|
||||
table2.Location = new Point(3, 65);
|
||||
table2.Name = "table2";
|
||||
table2.Size = new Size(258, 126);
|
||||
table2.TabIndex = 22;
|
||||
table2.Text = "table2";
|
||||
//
|
||||
// button4
|
||||
//
|
||||
button4.Location = new Point(3, 25);
|
||||
button4.Name = "button4";
|
||||
button4.Size = new Size(84, 34);
|
||||
button4.TabIndex = 23;
|
||||
button4.Text = "新增";
|
||||
//
|
||||
// PreTreatUserControl
|
||||
//
|
||||
AutoScaleDimensions = new SizeF(7F, 17F);
|
||||
AutoScaleMode = AutoScaleMode.Font;
|
||||
Controls.Add(panel1);
|
||||
Name = "PreTreatUserControl";
|
||||
Size = new Size(759, 243);
|
||||
panel1.ResumeLayout(false);
|
||||
panel1.PerformLayout();
|
||||
panel2.ResumeLayout(false);
|
||||
panel2.PerformLayout();
|
||||
panel3.ResumeLayout(false);
|
||||
panel3.PerformLayout();
|
||||
ResumeLayout(false);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private AntdUI.Button btnPreOpen;
|
||||
private TextBox tbxPrePath;
|
||||
private AntdUI.Label label1;
|
||||
private Panel panel1;
|
||||
private AntdUI.Button button2;
|
||||
private AntdUI.Button button1;
|
||||
private AntdUI.Table table1;
|
||||
private Panel panel2;
|
||||
private Panel panel3;
|
||||
private Label label3;
|
||||
private AntdUI.Button button3;
|
||||
private AntdUI.Table table2;
|
||||
private AntdUI.Button button4;
|
||||
private Label label2;
|
||||
}
|
||||
}
|
20
DHSoftware/Views/PreTreatUserControl.cs
Normal file
20
DHSoftware/Views/PreTreatUserControl.cs
Normal file
@ -0,0 +1,20 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace DHSoftware.Views
|
||||
{
|
||||
public partial class PreTreatUserControl : UserControl
|
||||
{
|
||||
public PreTreatUserControl()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
120
DHSoftware/Views/PreTreatUserControl.resx
Normal file
120
DHSoftware/Views/PreTreatUserControl.resx
Normal file
@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
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
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
103
DHSoftware/Views/SizeConfigControl.Designer.cs
generated
Normal file
103
DHSoftware/Views/SizeConfigControl.Designer.cs
generated
Normal file
@ -0,0 +1,103 @@
|
||||
namespace DHSoftware.Views
|
||||
{
|
||||
partial class SizeConfigControl
|
||||
{
|
||||
/// <summary>
|
||||
/// 必需的设计器变量。
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// 清理所有正在使用的资源。
|
||||
/// </summary>
|
||||
/// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region 组件设计器生成的代码
|
||||
|
||||
/// <summary>
|
||||
/// 设计器支持所需的方法 - 不要修改
|
||||
/// 使用代码编辑器修改此方法的内容。
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
panel2 = new Panel();
|
||||
label2 = new Label();
|
||||
button2 = new AntdUI.Button();
|
||||
table1 = new AntdUI.Table();
|
||||
button1 = new AntdUI.Button();
|
||||
panel2.SuspendLayout();
|
||||
SuspendLayout();
|
||||
//
|
||||
// panel2
|
||||
//
|
||||
panel2.Controls.Add(label2);
|
||||
panel2.Controls.Add(button2);
|
||||
panel2.Controls.Add(table1);
|
||||
panel2.Controls.Add(button1);
|
||||
panel2.Location = new Point(3, 3);
|
||||
panel2.Name = "panel2";
|
||||
panel2.Size = new Size(779, 286);
|
||||
panel2.TabIndex = 36;
|
||||
//
|
||||
// label2
|
||||
//
|
||||
label2.AutoSize = true;
|
||||
label2.Location = new Point(3, 5);
|
||||
label2.Name = "label2";
|
||||
label2.Size = new Size(56, 17);
|
||||
label2.TabIndex = 25;
|
||||
label2.Text = "模型参数";
|
||||
//
|
||||
// button2
|
||||
//
|
||||
button2.Location = new Point(93, 25);
|
||||
button2.Name = "button2";
|
||||
button2.Size = new Size(84, 34);
|
||||
button2.TabIndex = 24;
|
||||
button2.Text = "删除";
|
||||
//
|
||||
// table1
|
||||
//
|
||||
table1.Location = new Point(3, 65);
|
||||
table1.Name = "table1";
|
||||
table1.Size = new Size(773, 218);
|
||||
table1.TabIndex = 22;
|
||||
table1.Text = "table1";
|
||||
//
|
||||
// button1
|
||||
//
|
||||
button1.Location = new Point(3, 25);
|
||||
button1.Name = "button1";
|
||||
button1.Size = new Size(84, 34);
|
||||
button1.TabIndex = 23;
|
||||
button1.Text = "新增";
|
||||
//
|
||||
// SizeConfigControl
|
||||
//
|
||||
AutoScaleDimensions = new SizeF(7F, 17F);
|
||||
AutoScaleMode = AutoScaleMode.Font;
|
||||
Controls.Add(panel2);
|
||||
Name = "SizeConfigControl";
|
||||
Size = new Size(785, 292);
|
||||
panel2.ResumeLayout(false);
|
||||
panel2.PerformLayout();
|
||||
ResumeLayout(false);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private Panel panel2;
|
||||
private Label label2;
|
||||
private AntdUI.Button button2;
|
||||
private AntdUI.Table table1;
|
||||
private AntdUI.Button button1;
|
||||
}
|
||||
}
|
20
DHSoftware/Views/SizeConfigControl.cs
Normal file
20
DHSoftware/Views/SizeConfigControl.cs
Normal file
@ -0,0 +1,20 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace DHSoftware.Views
|
||||
{
|
||||
public partial class SizeConfigControl : UserControl
|
||||
{
|
||||
public SizeConfigControl()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
120
DHSoftware/Views/SizeConfigControl.resx
Normal file
120
DHSoftware/Views/SizeConfigControl.resx
Normal file
@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
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
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
59
DHSoftware/Views/UserConfigFrm.Designer.cs
generated
59
DHSoftware/Views/UserConfigFrm.Designer.cs
generated
@ -28,17 +28,76 @@
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
AntdUI.Tabs.StyleCard styleCard1 = new AntdUI.Tabs.StyleCard();
|
||||
menu = new AntdUI.Menu();
|
||||
UCFpanel1 = new Panel();
|
||||
panel1 = new Panel();
|
||||
tabs = new AntdUI.Tabs();
|
||||
UCFpanel1.SuspendLayout();
|
||||
SuspendLayout();
|
||||
//
|
||||
// menu
|
||||
//
|
||||
menu.Dock = DockStyle.Left;
|
||||
menu.Location = new Point(0, 0);
|
||||
menu.Name = "menu";
|
||||
menu.Size = new Size(127, 536);
|
||||
menu.TabIndex = 8;
|
||||
menu.Text = "menu1";
|
||||
menu.SelectChanged += Menu_SelectChanged;
|
||||
//
|
||||
// UCFpanel1
|
||||
//
|
||||
UCFpanel1.AutoSize = true;
|
||||
UCFpanel1.Controls.Add(panel1);
|
||||
UCFpanel1.Controls.Add(tabs);
|
||||
UCFpanel1.Controls.Add(menu);
|
||||
UCFpanel1.Dock = DockStyle.Fill;
|
||||
UCFpanel1.Location = new Point(0, 0);
|
||||
UCFpanel1.Name = "UCFpanel1";
|
||||
UCFpanel1.Size = new Size(749, 536);
|
||||
UCFpanel1.TabIndex = 1;
|
||||
//
|
||||
// panel1
|
||||
//
|
||||
panel1.BackColor = SystemColors.Highlight;
|
||||
panel1.Dock = DockStyle.Left;
|
||||
panel1.Location = new Point(127, 0);
|
||||
panel1.Name = "panel1";
|
||||
panel1.Size = new Size(5, 536);
|
||||
panel1.TabIndex = 10;
|
||||
//
|
||||
// tabs
|
||||
//
|
||||
tabs.Dock = DockStyle.Fill;
|
||||
tabs.ForeColor = SystemColors.Control;
|
||||
tabs.Location = new Point(127, 0);
|
||||
tabs.Name = "tabs";
|
||||
tabs.Size = new Size(622, 536);
|
||||
tabs.Style = styleCard1;
|
||||
tabs.TabIndex = 9;
|
||||
tabs.Text = "tabs1";
|
||||
tabs.Type = AntdUI.TabType.Card;
|
||||
tabs.SelectedIndexChanged += tabs_SelectedIndexChanged;
|
||||
//
|
||||
// UserConfigFrm
|
||||
//
|
||||
AutoScaleDimensions = new SizeF(7F, 17F);
|
||||
AutoScaleMode = AutoScaleMode.Font;
|
||||
AutoSize = true;
|
||||
Controls.Add(UCFpanel1);
|
||||
Name = "UserConfigFrm";
|
||||
Size = new Size(749, 536);
|
||||
UCFpanel1.ResumeLayout(false);
|
||||
ResumeLayout(false);
|
||||
PerformLayout();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private AntdUI.Menu menu;
|
||||
private Panel UCFpanel1;
|
||||
private AntdUI.Tabs tabs;
|
||||
private Panel panel1;
|
||||
}
|
||||
}
|
||||
|
@ -1,4 +1,7 @@
|
||||
using System;
|
||||
using AntdUI;
|
||||
using AntdUIDemo.Models;
|
||||
using AntdUIDemo.Views;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
@ -7,14 +10,157 @@ using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using static System.Windows.Forms.VisualStyles.VisualStyleElement;
|
||||
|
||||
namespace DHSoftware.Views
|
||||
{
|
||||
public partial class UserConfigFrm : UserControl
|
||||
{
|
||||
private UserControl currControl;
|
||||
private bool isUpdatingTabs = false;//用于阻止Tabs更新
|
||||
public UserConfigFrm()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
LoadMenu();
|
||||
menu.Width = (int)(100 * Config.Dpi);
|
||||
|
||||
}
|
||||
private void LoadMenu(string filter = "")
|
||||
{
|
||||
menu.Items.Clear();
|
||||
|
||||
string lang = AntdUI.Localization.CurrentLanguage;
|
||||
var menuItems = DataUtil.Menu_decetion;
|
||||
//var menuIcons = DataUtil.MenuIcons_zhcn;
|
||||
//if (lang.StartsWith("en"))
|
||||
//{
|
||||
// menuItems = DataUtil.MenuItems_enus;
|
||||
// menuIcons = DataUtil.MenuIcons_enus;
|
||||
//}
|
||||
|
||||
foreach (var rootItem in menuItems)
|
||||
{
|
||||
var rootKey = rootItem.Key.ToLower();
|
||||
var rootMenu = new AntdUI.MenuItem
|
||||
{
|
||||
Text = rootItem.Key,
|
||||
//IconSvg = menuIcons.TryGetValue(rootItem.Key, out var icon) ? icon : "UnorderedListOutlined",
|
||||
};
|
||||
bool rootVisible = false; // 用于标记是否显示根节点
|
||||
|
||||
foreach (var item in rootItem.Value)
|
||||
{
|
||||
var childText = item.Text.ToLower();
|
||||
|
||||
// 如果子节点包含搜索文本
|
||||
if (childText.Contains(filter))
|
||||
{
|
||||
var menuItem = new AntdUI.MenuItem
|
||||
{
|
||||
Text = item.Text,
|
||||
IconSvg = item.IconSvg,
|
||||
Tag = item.Tag,
|
||||
};
|
||||
rootMenu.Sub.Add(menuItem);
|
||||
rootVisible = true; // 如果有子节点包含,则显示根节点
|
||||
}
|
||||
}
|
||||
|
||||
// 如果根节点包含搜索文本,或有可见的子节点,则显示根节点
|
||||
if (rootKey.Contains(filter) || rootVisible)
|
||||
{
|
||||
menu.Items.Add(rootMenu);
|
||||
}
|
||||
}
|
||||
}
|
||||
private void SelectMenu()
|
||||
{
|
||||
if (isUpdatingTabs) return;
|
||||
var text = tabs.SelectedTab?.Text; // 使用安全导航操作符,防止 SelectedTab 为 null
|
||||
if (string.IsNullOrEmpty(text)) // 检查 text 是否为 null 或空
|
||||
{
|
||||
return; // 如果 text 为空,直接退出方法
|
||||
}
|
||||
//首页
|
||||
if (text == AntdUI.Localization.Get("home", "主页"))
|
||||
{
|
||||
return;
|
||||
}
|
||||
var rootIndex = 0;
|
||||
var subIndex = 0;
|
||||
var menuItemsCopy = menu.Items.ToList(); // 创建副本
|
||||
for (int i = 0; i < menuItemsCopy.Count; i++)
|
||||
{
|
||||
for (int j = 0; j < menuItemsCopy[i].Sub.Count; j++)
|
||||
{
|
||||
if (menuItemsCopy[i].Sub[j].Tag.ToString() == text)
|
||||
{
|
||||
rootIndex = i;
|
||||
subIndex = j;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
menu.SelectIndex(rootIndex, subIndex, true);
|
||||
}
|
||||
private void Menu_SelectChanged(object sender, MenuSelectEventArgs e)
|
||||
{
|
||||
string name = (string)e.Value.Tag;
|
||||
|
||||
// 清理上一个浮动按钮窗体
|
||||
if (currControl is FloatButtonDemo floatButtonDemo)
|
||||
{
|
||||
floatButtonDemo.CloseFloatButtonForm();
|
||||
}
|
||||
|
||||
// 检查是否已存在同名 TabPage
|
||||
foreach (var tab in tabs.Pages)
|
||||
{
|
||||
if (tab is AntdUI.TabPage existingTab && existingTab.Text == name)
|
||||
{
|
||||
isUpdatingTabs = true;
|
||||
tabs.SelectedTab = existingTab;
|
||||
isUpdatingTabs = false;
|
||||
currControl = existingTab.Controls.Count > 0 ? existingTab.Controls[0] as UserControl : null;
|
||||
return;
|
||||
}
|
||||
}
|
||||
int width = tabs.Width;
|
||||
int height = tabs.Height;
|
||||
// 创建新 TabPage
|
||||
UserControl control =new UserDetetion(width, height);
|
||||
switch (name)
|
||||
{
|
||||
case "工位1":
|
||||
// control =
|
||||
break;
|
||||
}
|
||||
|
||||
if (control != null)
|
||||
{
|
||||
control.Dock = DockStyle.Fill;
|
||||
// AutoDpi(control); // 如果有 DPI 适配逻辑
|
||||
|
||||
var tabPage = new AntdUI.TabPage
|
||||
{
|
||||
Dock = DockStyle.Fill,
|
||||
Text = name,
|
||||
};
|
||||
tabPage.Controls.Add(control);
|
||||
tabs.Pages.Add(tabPage);
|
||||
|
||||
isUpdatingTabs = true;
|
||||
tabs.SelectedTab = tabPage;
|
||||
isUpdatingTabs = false;
|
||||
currControl = control;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void tabs_SelectedIndexChanged(object sender, IntEventArgs e)
|
||||
{
|
||||
SelectMenu();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
69
DHSoftware/Views/UserDetetion.Designer.cs
generated
Normal file
69
DHSoftware/Views/UserDetetion.Designer.cs
generated
Normal file
@ -0,0 +1,69 @@
|
||||
namespace DHSoftware.Views
|
||||
{
|
||||
partial class UserDetetion
|
||||
{
|
||||
/// <summary>
|
||||
/// 必需的设计器变量。
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// 清理所有正在使用的资源。
|
||||
/// </summary>
|
||||
/// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region 组件设计器生成的代码
|
||||
|
||||
/// <summary>
|
||||
/// 设计器支持所需的方法 - 不要修改
|
||||
/// 使用代码编辑器修改此方法的内容。
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
collapse1 = new AntdUI.Collapse();
|
||||
panel1 = new Panel();
|
||||
SuspendLayout();
|
||||
//
|
||||
// collapse1
|
||||
//
|
||||
collapse1.Dock = DockStyle.Fill;
|
||||
collapse1.Location = new Point(0, 0);
|
||||
collapse1.Name = "collapse1";
|
||||
collapse1.Size = new Size(842, 568);
|
||||
collapse1.TabIndex = 0;
|
||||
collapse1.Text = "collapse1";
|
||||
//
|
||||
// panel1
|
||||
//
|
||||
panel1.BackColor = SystemColors.GradientActiveCaption;
|
||||
panel1.Dock = DockStyle.Left;
|
||||
panel1.Location = new Point(0, 0);
|
||||
panel1.Name = "panel1";
|
||||
panel1.Size = new Size(2, 568);
|
||||
panel1.TabIndex = 0;
|
||||
//
|
||||
// UserDetetion
|
||||
//
|
||||
AutoScaleDimensions = new SizeF(7F, 17F);
|
||||
AutoScaleMode = AutoScaleMode.Font;
|
||||
Controls.Add(panel1);
|
||||
Controls.Add(collapse1);
|
||||
Name = "UserDetetion";
|
||||
Size = new Size(842, 568);
|
||||
ResumeLayout(false);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private AntdUI.Collapse collapse1;
|
||||
private Panel panel1;
|
||||
}
|
||||
}
|
88
DHSoftware/Views/UserDetetion.cs
Normal file
88
DHSoftware/Views/UserDetetion.cs
Normal file
@ -0,0 +1,88 @@
|
||||
using AntdUI;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace DHSoftware.Views
|
||||
{
|
||||
public partial class UserDetetion : UserControl
|
||||
{
|
||||
//根据检测配置 将对应的相机配置、中处理预处理、尺寸测量
|
||||
public UserDetetion(int parentWidth, int parentHeight)
|
||||
{
|
||||
InitializeComponent();
|
||||
AntdUI.CollapseItem group1 = new CollapseItem();
|
||||
group1.Height = parentHeight / 3;
|
||||
group1.Text = "相机配置";
|
||||
AntdUI.CollapseItem group2 = new CollapseItem();
|
||||
group2.Text = "预处理中处理";
|
||||
group2.Height = parentHeight -300;
|
||||
AntdUI.CollapseItem group3 = new CollapseItem();
|
||||
group3.Text = "尺寸测量";
|
||||
group3.Height = parentHeight/3;
|
||||
|
||||
|
||||
|
||||
// 父容器(如 Panel)设置自动滚动
|
||||
System.Windows.Forms.Panel panel = new System.Windows.Forms.Panel
|
||||
{
|
||||
Dock = DockStyle.Fill,
|
||||
AutoScroll = true // 关键:启用滚动条
|
||||
};
|
||||
|
||||
|
||||
// 父容器(如 Panel)设置自动滚动
|
||||
System.Windows.Forms.FlowLayoutPanel panel2 = new System.Windows.Forms.FlowLayoutPanel
|
||||
{
|
||||
Dock = DockStyle.Fill,
|
||||
AutoScroll = true // 关键:启用滚动条
|
||||
};
|
||||
|
||||
// 父容器(如 Panel)设置自动滚动
|
||||
System.Windows.Forms.Panel panel3 = new System.Windows.Forms.Panel
|
||||
{
|
||||
Dock = DockStyle.Fill,
|
||||
AutoScroll = true // 关键:启用滚动条
|
||||
};
|
||||
|
||||
|
||||
CameraConfigControl camConfigFrm = new CameraConfigControl();
|
||||
camConfigFrm.Dock = DockStyle.Fill;
|
||||
panel.Controls.Add(camConfigFrm);
|
||||
|
||||
PreTreatUserControl ptuc = new PreTreatUserControl();
|
||||
ptuc.AutoScroll = true;
|
||||
panel2.Controls.Add(ptuc);
|
||||
DetectConfigControl detect = new DetectConfigControl();
|
||||
// detect.Dock = DockStyle.Fill;
|
||||
detect.AutoScroll = true;
|
||||
panel2.Controls.Add(detect);
|
||||
|
||||
|
||||
SizeConfigControl Sizefc = new SizeConfigControl();
|
||||
Sizefc.Dock = DockStyle.Fill;
|
||||
panel3.Controls.Add(Sizefc);
|
||||
|
||||
|
||||
|
||||
|
||||
group1.Controls.Add(panel);
|
||||
group2.Controls.Add(panel2);
|
||||
group3.Controls.Add(panel3);
|
||||
|
||||
|
||||
//collapse1.Items.Add(group1);
|
||||
collapse1.Items.Add(group1);
|
||||
collapse1.Items.Add(group2);
|
||||
collapse1.Items.Add(group3);
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
120
DHSoftware/Views/UserDetetion.resx
Normal file
120
DHSoftware/Views/UserDetetion.resx
Normal file
@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
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
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
Loading…
x
Reference in New Issue
Block a user