diff --git a/AntdUIDemo.csproj b/AntdUIDemo.csproj
index 43eec13..927eedf 100644
--- a/AntdUIDemo.csproj
+++ b/AntdUIDemo.csproj
@@ -13,7 +13,7 @@
Copyright © 2025 czz_y
$(Version)
$(Version)
- 1.8.6
+ 1.8.9
czz_y
基于 Winform UI 框架 AntdUI 设计的 Demo
https://gitee.com/mubaiyanghua/antd-uidemo
@@ -30,7 +30,7 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/MainWindow.Designer.cs b/MainWindow.Designer.cs
index bbd3b0a..542f39f 100644
--- a/MainWindow.Designer.cs
+++ b/MainWindow.Designer.cs
@@ -29,7 +29,7 @@
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainWindow));
- AntdUI.Tabs.StyleCard styleCard1 = new AntdUI.Tabs.StyleCard();
+ AntdUI.Tabs.StyleCard styleCard2 = new AntdUI.Tabs.StyleCard();
this.titlebar = new AntdUI.PageHeader();
this.input_search = new AntdUI.Input();
this.dropdown_translate = new AntdUI.Dropdown();
@@ -63,7 +63,7 @@
this.titlebar.Size = new System.Drawing.Size(1024, 40);
this.titlebar.SubText = "Demo";
this.titlebar.TabIndex = 0;
- this.titlebar.Text = "AntdUI 1.8.6";
+ this.titlebar.Text = "AntdUI 1.8.9";
//
// input_search
//
@@ -146,15 +146,15 @@
//
// tabs
//
- this.tabs.Cursor = System.Windows.Forms.Cursors.Hand;
+ this.tabs.Cursor = System.Windows.Forms.Cursors.Default;
this.tabs.Dock = System.Windows.Forms.DockStyle.Fill;
this.tabs.Gap = 20;
this.tabs.Location = new System.Drawing.Point(70, 40);
this.tabs.Name = "tabs";
this.tabs.Pages.Add(this.tabPage);
this.tabs.Size = new System.Drawing.Size(954, 560);
- styleCard1.Closable = true;
- this.tabs.Style = styleCard1;
+ styleCard2.Closable = true;
+ this.tabs.Style = styleCard2;
this.tabs.TabIndex = 9;
this.tabs.Type = AntdUI.TabType.Card;
//
@@ -187,6 +187,7 @@
this.menu.IconRatio = 1F;
this.menu.Indent = true;
this.menu.Location = new System.Drawing.Point(0, 40);
+ this.menu.Margin = new System.Windows.Forms.Padding(3, 3, 0, 3);
this.menu.Name = "menu";
this.menu.Size = new System.Drawing.Size(70, 560);
this.menu.TabIndex = 8;
diff --git a/MainWindow.cs b/MainWindow.cs
index 1cb480b..026e986 100644
--- a/MainWindow.cs
+++ b/MainWindow.cs
@@ -103,6 +103,8 @@ namespace AntdUIDemo
{
tabs.Pages.RemoveRange(1, tabs.Pages.Count - 1); // 从索引1开始,移除后面的所有页面
}
+ menu.Select(null);
+ menu.Refresh();
}
}, menulist);
@@ -430,6 +432,9 @@ namespace AntdUIDemo
case "Tooltip":
control = new TooltipDemo();
break;
+ case "Tour":
+ control = new TourDemo(this);
+ break;
case "Tree":
control = new TreeDemo();
break;
diff --git a/Models/DataUtil.cs b/Models/DataUtil.cs
index baf6d16..c90f7e8 100644
--- a/Models/DataUtil.cs
+++ b/Models/DataUtil.cs
@@ -68,6 +68,7 @@ namespace AntdUIDemo.Models
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"}
}
},
@@ -126,6 +127,7 @@ namespace AntdUIDemo.Models
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"}
}
},
@@ -174,6 +176,7 @@ namespace AntdUIDemo.Models
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"}
}
},
diff --git a/README-en.md b/README-en.md
index 531ddf3..ccfd8c1 100644
--- a/README-en.md
+++ b/README-en.md
@@ -4,7 +4,7 @@
AntdUI Demo
-This project is developed based on `Winform .NET Framework 4.8`, and is a demo project of [AntdUI](https://gitee.com/antdui/AntdUI), the current version is `1.8.6`
+This project is developed based on `Winform .NET Framework 4.8`, and is a demo project of [AntdUI](https://gitee.com/antdui/AntdUI), the current version is `1.8.9`
@@ -137,6 +137,8 @@ English | 中文

#### Tooltip

+#### Tour
+
#### Tree

diff --git a/README.md b/README.md
index dd41f41..1ef8c38 100644
--- a/README.md
+++ b/README.md
@@ -4,7 +4,7 @@
AntdUI Demo
-本项目基于 `Winform .NET Framework 4.8` 开发,是 [AntdUI](https://gitee.com/antdui/AntdUI) 的 Demo 项目,当前版本 `1.8.6`
+本项目基于 `Winform .NET Framework 4.8` 开发,是 [AntdUI](https://gitee.com/antdui/AntdUI) 的 Demo 项目,当前版本 `1.8.9`
@@ -137,6 +137,8 @@

#### Tooltip 文字提示

+#### Tour 漫游式引导
+
#### Tree 树形控件

diff --git a/Views/GridPanelDemo.Designer.cs b/Views/GridPanelDemo.Designer.cs
index b769085..c3c9e4f 100644
--- a/Views/GridPanelDemo.Designer.cs
+++ b/Views/GridPanelDemo.Designer.cs
@@ -33,6 +33,7 @@
this.stackPanel2 = new AntdUI.StackPanel();
this.gridPanel = new AntdUI.GridPanel();
this.stackPanel3 = new AntdUI.StackPanel();
+ this.label1 = new AntdUI.Label();
this.buttonCZ = new AntdUI.Button();
this.stackPanel4 = new AntdUI.StackPanel();
this.input_gap = new AntdUI.InputNumber();
@@ -40,7 +41,6 @@
this.stackPanel5 = new AntdUI.StackPanel();
this.input_span = new AntdUI.Input();
this.label3 = new AntdUI.Label();
- this.label1 = new AntdUI.Label();
this.stackPanel1.SuspendLayout();
this.stackPanel2.SuspendLayout();
this.stackPanel3.SuspendLayout();
@@ -104,6 +104,15 @@
this.stackPanel3.Text = "stackPanel3";
this.stackPanel3.Vertical = true;
//
+ // label1
+ //
+ this.label1.Font = new System.Drawing.Font("Microsoft YaHei UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+ this.label1.Location = new System.Drawing.Point(3, 136);
+ this.label1.Name = "label1";
+ this.label1.Size = new System.Drawing.Size(244, 120);
+ this.label1.TabIndex = 21;
+ this.label1.Text = "Span:以-符号分界。\r\n-前为列宽属性,列宽以 ; 分组,每一组代表一行。\r\n-后为行高属性。\r\n行高属性个数要与行数对应,每个数之间用空格间隔";
+ //
// buttonCZ
//
this.buttonCZ.Font = new System.Drawing.Font("Microsoft YaHei UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
@@ -179,15 +188,6 @@
this.label3.TabIndex = 4;
this.label3.Text = "Span";
//
- // label1
- //
- this.label1.Font = new System.Drawing.Font("Microsoft YaHei UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
- this.label1.Location = new System.Drawing.Point(3, 136);
- this.label1.Name = "label1";
- this.label1.Size = new System.Drawing.Size(244, 84);
- this.label1.TabIndex = 21;
- this.label1.Text = "Span:以-为分解。-前为列宽属性,-后为行高属性列宽以;分组。每一组代表一行\r\n行高属性个数要与行数对应,每个数之间用空格间隔";
- //
// GridPanelDemo
//
this.Controls.Add(this.stackPanel1);
diff --git a/Views/SubView/Demo.Designer.cs b/Views/SubView/Demo.Designer.cs
index 8d8a037..b8ecdd4 100644
--- a/Views/SubView/Demo.Designer.cs
+++ b/Views/SubView/Demo.Designer.cs
@@ -29,8 +29,8 @@
private void InitializeComponent()
{
this.panel1 = new AntdUI.Panel();
- this.pageHeader = new AntdUI.PageHeader();
this.button_close = new AntdUI.Button();
+ this.pageHeader = new AntdUI.PageHeader();
this.panel1.SuspendLayout();
this.SuspendLayout();
//
@@ -46,19 +46,6 @@
this.panel1.TabIndex = 0;
this.panel1.Text = "panel1";
//
- // pageHeader
- //
- this.pageHeader.Dock = System.Windows.Forms.DockStyle.Top;
- this.pageHeader.Font = new System.Drawing.Font("Microsoft YaHei UI", 9F);
- this.pageHeader.Location = new System.Drawing.Point(6, 6);
- this.pageHeader.MaximizeBox = false;
- this.pageHeader.MinimizeBox = false;
- this.pageHeader.Name = "pageHeader";
- this.pageHeader.ShowIcon = false;
- this.pageHeader.Size = new System.Drawing.Size(488, 32);
- this.pageHeader.TabIndex = 1;
- this.pageHeader.Text = "DrawerDemo";
- //
// button_close
//
this.button_close.Font = new System.Drawing.Font("Microsoft YaHei UI", 9F);
@@ -69,9 +56,21 @@
this.button_close.Text = "关闭";
this.button_close.Type = AntdUI.TTypeMini.Error;
//
+ // pageHeader
+ //
+ this.pageHeader.Dock = System.Windows.Forms.DockStyle.Top;
+ this.pageHeader.Font = new System.Drawing.Font("Microsoft YaHei UI", 9F);
+ this.pageHeader.Location = new System.Drawing.Point(6, 6);
+ this.pageHeader.MaximizeBox = false;
+ this.pageHeader.MinimizeBox = false;
+ this.pageHeader.Name = "pageHeader";
+ this.pageHeader.ShowButton = true;
+ this.pageHeader.Size = new System.Drawing.Size(488, 32);
+ this.pageHeader.TabIndex = 1;
+ this.pageHeader.Text = "DrawerDemo";
+ //
// Demo
//
-
this.Controls.Add(this.panel1);
this.Name = "Demo";
this.Size = new System.Drawing.Size(500, 420);
diff --git a/Views/SubView/TourTest.Designer.cs b/Views/SubView/TourTest.Designer.cs
new file mode 100644
index 0000000..c1d58dc
--- /dev/null
+++ b/Views/SubView/TourTest.Designer.cs
@@ -0,0 +1,124 @@
+namespace AntdUIDemo.Views.SubView
+{
+ partial class TourTest
+ {
+ ///
+ /// 必需的设计器变量。
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// 清理所有正在使用的资源。
+ ///
+ /// 如果应释放托管资源,为 true;否则为 false。
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region 组件设计器生成的代码
+
+ ///
+ /// 设计器支持所需的方法 - 不要修改
+ /// 使用代码编辑器修改此方法的内容。
+ ///
+ private void InitializeComponent()
+ {
+ this.label1 = new AntdUI.Label();
+ this.panel1 = new AntdUI.Panel();
+ this.button_previous = new AntdUI.Button();
+ this.button_next = new AntdUI.Button();
+ this.label2 = new AntdUI.Label();
+ this.label3 = new AntdUI.Label();
+ this.panel1.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // label1
+ //
+ this.label1.Dock = System.Windows.Forms.DockStyle.Top;
+ this.label1.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+ this.label1.Location = new System.Drawing.Point(0, 0);
+ this.label1.Name = "label1";
+ this.label1.Size = new System.Drawing.Size(220, 36);
+ this.label1.TabIndex = 0;
+ //
+ // panel1
+ //
+ this.panel1.Controls.Add(this.label3);
+ this.panel1.Controls.Add(this.button_previous);
+ this.panel1.Controls.Add(this.button_next);
+ this.panel1.Dock = System.Windows.Forms.DockStyle.Bottom;
+ this.panel1.Location = new System.Drawing.Point(0, 110);
+ this.panel1.Name = "panel1";
+ this.panel1.Size = new System.Drawing.Size(220, 40);
+ this.panel1.TabIndex = 5;
+ this.panel1.Text = "panel1";
+ //
+ // button_previous
+ //
+ this.button_previous.BorderWidth = 1F;
+ this.button_previous.Dock = System.Windows.Forms.DockStyle.Right;
+ this.button_previous.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+ this.button_previous.Location = new System.Drawing.Point(70, 0);
+ this.button_previous.Name = "button_previous";
+ this.button_previous.Size = new System.Drawing.Size(75, 40);
+ this.button_previous.TabIndex = 7;
+ this.button_previous.Text = "上一步";
+ //
+ // button_next
+ //
+ this.button_next.BorderWidth = 1F;
+ this.button_next.Dock = System.Windows.Forms.DockStyle.Right;
+ this.button_next.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+ this.button_next.Location = new System.Drawing.Point(145, 0);
+ this.button_next.Name = "button_next";
+ this.button_next.Size = new System.Drawing.Size(75, 40);
+ this.button_next.TabIndex = 6;
+ this.button_next.Text = "下一步";
+ this.button_next.Type = AntdUI.TTypeMini.Primary;
+ //
+ // label2
+ //
+ this.label2.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.label2.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+ this.label2.Location = new System.Drawing.Point(0, 36);
+ this.label2.Name = "label2";
+ this.label2.Size = new System.Drawing.Size(220, 74);
+ this.label2.TabIndex = 6;
+ //
+ // label3
+ //
+ this.label3.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.label3.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+ this.label3.Location = new System.Drawing.Point(0, 0);
+ this.label3.Name = "label3";
+ this.label3.Size = new System.Drawing.Size(70, 40);
+ this.label3.TabIndex = 8;
+ //
+ // TourTest
+ //
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit;
+ this.Controls.Add(this.label2);
+ this.Controls.Add(this.panel1);
+ this.Controls.Add(this.label1);
+ this.Name = "TourTest";
+ this.Size = new System.Drawing.Size(220, 150);
+ this.panel1.ResumeLayout(false);
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private AntdUI.Label label1;
+ private AntdUI.Panel panel1;
+ private AntdUI.Label label3;
+ private AntdUI.Button button_previous;
+ private AntdUI.Button button_next;
+ private AntdUI.Label label2;
+ }
+}
diff --git a/Views/SubView/TourTest.cs b/Views/SubView/TourTest.cs
new file mode 100644
index 0000000..4155e12
--- /dev/null
+++ b/Views/SubView/TourTest.cs
@@ -0,0 +1,61 @@
+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;
+using static System.Net.Mime.MediaTypeNames;
+
+namespace AntdUIDemo.Views.SubView
+{
+ public partial class TourTest : UserControl
+ {
+ AntdUI.Tour.Popover popover;
+ public TourTest(AntdUI.Tour.Popover _popover, string title, string text, int step, int max)
+ {
+ popover = _popover;
+ InitializeComponent();
+ InitData(title, text, step ,max);
+ BindEventHandler();
+
+ }
+
+ private void InitData(string title,string text,int step ,int max)
+ {
+ label1.Text = title;
+ label2.Text = text;
+ label3.Text = step + " / " + max;
+ if (step == max)
+ {
+ button_next.LocalizationText = "Finish";
+ button_next.Text = "完成";
+ }
+ button_previous.Visible = step > 1;
+ if (button_previous.Visible)
+ {
+ int w1 = (int)(label1.PSize.Width / AntdUI.Config.Dpi), w = (int)((label2.PSize.Width + button_previous.PSize.Width + button_next.PSize.Width) / AntdUI.Config.Dpi);
+ Width = w1 > w ? w1 : w;
+ }
+ }
+
+ private void BindEventHandler()
+ {
+ button_previous.Click += Button_previous_Click;
+ button_next.Click += Button_next_Click;
+ }
+
+ private void Button_next_Click(object sender, EventArgs e)
+ {
+ popover.Tour.Next();
+ }
+
+ private void Button_previous_Click(object sender, EventArgs e)
+ {
+ popover.Tour.Previous();
+ }
+ }
+}
diff --git a/Views/SubView/TourTest.resx b/Views/SubView/TourTest.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/Views/SubView/TourTest.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/Views/TourDemo.Designer.cs b/Views/TourDemo.Designer.cs
new file mode 100644
index 0000000..cba7f74
--- /dev/null
+++ b/Views/TourDemo.Designer.cs
@@ -0,0 +1,171 @@
+namespace AntdUIDemo.Views
+{
+ partial class TourDemo
+ {
+ ///
+ /// 必需的设计器变量。
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// 清理所有正在使用的资源。
+ ///
+ /// 如果应释放托管资源,为 true;否则为 false。
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region 组件设计器生成的代码
+
+ ///
+ /// 设计器支持所需的方法 - 不要修改
+ /// 使用代码编辑器修改此方法的内容。
+ ///
+ private void InitializeComponent()
+ {
+ this.header1 = new AntdUI.PageHeader();
+ this.label3 = new AntdUI.Label();
+ this.flowPanel1 = new AntdUI.FlowPanel();
+ this.button_base = new AntdUI.Button();
+ this.flowPanel2 = new AntdUI.FlowPanel();
+ this.button3 = new AntdUI.Button();
+ this.button2 = new AntdUI.Button();
+ this.button1 = new AntdUI.Button();
+ this.button_custom = new AntdUI.Button();
+ this.flowPanel1.SuspendLayout();
+ this.flowPanel2.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.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 = 28;
+ this.header1.Text = "Tour 漫游式引导";
+ this.header1.UseTitleFont = true;
+ //
+ // label3
+ //
+ this.label3.Dock = System.Windows.Forms.DockStyle.Top;
+ this.label3.Font = new System.Drawing.Font("Microsoft YaHei UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+ this.label3.Location = new System.Drawing.Point(0, 74);
+ this.label3.Name = "label3";
+ this.label3.Size = new System.Drawing.Size(750, 24);
+ this.label3.TabIndex = 29;
+ this.label3.Text = "基本用法";
+ //
+ // flowPanel1
+ //
+ this.flowPanel1.Controls.Add(this.button_custom);
+ this.flowPanel1.Controls.Add(this.button_base);
+ this.flowPanel1.Dock = System.Windows.Forms.DockStyle.Top;
+ this.flowPanel1.Location = new System.Drawing.Point(0, 98);
+ this.flowPanel1.Name = "flowPanel1";
+ this.flowPanel1.Size = new System.Drawing.Size(750, 38);
+ this.flowPanel1.TabIndex = 30;
+ this.flowPanel1.Text = "flowPanel1";
+ //
+ // button_base
+ //
+ this.button_base.Font = new System.Drawing.Font("Microsoft YaHei UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+ this.button_base.Location = new System.Drawing.Point(3, 3);
+ this.button_base.Name = "button_base";
+ this.button_base.Size = new System.Drawing.Size(100, 32);
+ this.button_base.TabIndex = 1;
+ this.button_base.Text = "Begin Tour";
+ this.button_base.Type = AntdUI.TTypeMini.Primary;
+ this.button_base.WaveSize = 0;
+ //
+ // flowPanel2
+ //
+ this.flowPanel2.Controls.Add(this.button3);
+ this.flowPanel2.Controls.Add(this.button2);
+ this.flowPanel2.Controls.Add(this.button1);
+ this.flowPanel2.Dock = System.Windows.Forms.DockStyle.Top;
+ this.flowPanel2.Location = new System.Drawing.Point(0, 136);
+ this.flowPanel2.Name = "flowPanel2";
+ this.flowPanel2.Size = new System.Drawing.Size(750, 38);
+ this.flowPanel2.TabIndex = 31;
+ this.flowPanel2.Text = "flowPanel2";
+ //
+ // button3
+ //
+ this.button3.Font = new System.Drawing.Font("Microsoft YaHei UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+ this.button3.IconSvg = "EllipsisOutlined";
+ this.button3.Location = new System.Drawing.Point(175, 3);
+ this.button3.Name = "button3";
+ this.button3.Size = new System.Drawing.Size(40, 32);
+ this.button3.TabIndex = 4;
+ this.button3.WaveSize = 0;
+ //
+ // button2
+ //
+ this.button2.Font = new System.Drawing.Font("Microsoft YaHei UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+ this.button2.Location = new System.Drawing.Point(89, 3);
+ this.button2.Name = "button2";
+ this.button2.Size = new System.Drawing.Size(80, 32);
+ this.button2.TabIndex = 3;
+ this.button2.Text = "Save";
+ this.button2.Type = AntdUI.TTypeMini.Primary;
+ this.button2.WaveSize = 0;
+ //
+ // button1
+ //
+ this.button1.Font = new System.Drawing.Font("Microsoft YaHei UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+ this.button1.Location = new System.Drawing.Point(3, 3);
+ this.button1.Name = "button1";
+ this.button1.Size = new System.Drawing.Size(80, 32);
+ this.button1.TabIndex = 2;
+ this.button1.Text = "Upload";
+ this.button1.WaveSize = 0;
+ //
+ // button_custom
+ //
+ this.button_custom.Font = new System.Drawing.Font("Microsoft YaHei UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+ this.button_custom.Location = new System.Drawing.Point(109, 3);
+ this.button_custom.Name = "button_custom";
+ this.button_custom.Size = new System.Drawing.Size(100, 32);
+ this.button_custom.TabIndex = 5;
+ this.button_custom.Text = "Begin Tour";
+ this.button_custom.Type = AntdUI.TTypeMini.Primary;
+ this.button_custom.WaveSize = 0;
+ //
+ // TourDemo
+ //
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit;
+ this.Controls.Add(this.flowPanel2);
+ this.Controls.Add(this.flowPanel1);
+ this.Controls.Add(this.label3);
+ this.Controls.Add(this.header1);
+ this.Name = "TourDemo";
+ this.Size = new System.Drawing.Size(750, 531);
+ this.flowPanel1.ResumeLayout(false);
+ this.flowPanel2.ResumeLayout(false);
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private AntdUI.PageHeader header1;
+ private AntdUI.Label label3;
+ private AntdUI.FlowPanel flowPanel1;
+ private AntdUI.Button button_base;
+ private AntdUI.FlowPanel flowPanel2;
+ private AntdUI.Button button3;
+ private AntdUI.Button button2;
+ private AntdUI.Button button1;
+ private AntdUI.Button button_custom;
+ }
+}
diff --git a/Views/TourDemo.cs b/Views/TourDemo.cs
new file mode 100644
index 0000000..ce565d9
--- /dev/null
+++ b/Views/TourDemo.cs
@@ -0,0 +1,117 @@
+using AntdUI;
+using AntdUIDemo.Views.SubView;
+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 AntdUIDemo.Views
+{
+ public partial class TourDemo : UserControl
+ {
+ private AntdUI.Window window;
+ private AntdUI.TourForm tourForm;
+ public TourDemo(AntdUI.Window _window)
+ {
+ window = _window;
+ InitializeComponent();
+ BindEventHandler();
+ }
+
+ private void BindEventHandler()
+ {
+ button_base.Click += Button_base_Click;
+ button_custom.Click += Button_custom_Click;
+ }
+
+ private void Button_custom_Click(object sender, EventArgs e)
+ {
+ if (tourForm == null)
+ {
+ Form popover = null;
+ tourForm = AntdUI.Tour.open(window, item =>
+ {
+ //显示位置
+ switch (item.Index)
+ {
+ case 0:
+ item.Set(button1);
+ break;
+ case 1:
+ item.Set(button2);
+ break;
+ case 2:
+ item.Set(button3);
+ break;
+ default:
+ item.Close();
+ tourForm = null;
+ break;
+ }
+ }, info =>
+ {
+ //提示弹窗
+ popover?.Close();
+ popover = null;
+ //也可以弹自定义控件,用法同Popover
+ TourTest tourTest = new TourTest(info, "提示", "Tour Step " + (info.Index + 1), (info.Index + 1), 3);
+ if (info.Rect.HasValue) popover = AntdUI.Popover.open(new AntdUI.Popover.Config(info.Form, tourTest)
+ {
+ Offset = info.Rect.Value,
+ Focus = false,
+ Font = new Font("Microsoft YaHei UI", 9F, FontStyle.Regular, GraphicsUnit.Point, ((byte)(134))),
+ });
+ });
+ }
+ else
+ tourForm.Next();
+ }
+
+ private void Button_base_Click(object sender, EventArgs e)
+ {
+ if (tourForm == null)
+ {
+ Form popover = null;
+ tourForm = AntdUI.Tour.open(window, item =>
+ {
+ //显示位置
+ switch (item.Index)
+ {
+ case 0:
+ item.Set(button1);
+ break;
+ case 1:
+ item.Set(button2);
+ break;
+ case 2:
+ item.Set(button3);
+ break;
+ default:
+ item.Close();
+ tourForm = null;
+ break;
+ }
+ }, info =>
+ {
+ //提示弹窗
+ popover?.Close();
+ popover = null;
+ //也可以弹自定义控件,用法同Popover
+ if (info.Rect.HasValue) popover = AntdUI.Popover.open(new AntdUI.Popover.Config(info.Form, "提示", "第"+(info.Index+1)+"步")
+ {
+ Offset = info.Rect.Value,
+ Focus = false,
+ Font = new Font("Microsoft YaHei UI", 9F, FontStyle.Regular, GraphicsUnit.Point, ((byte)(134))),
+ });
+ });
+ }
+ else
+ tourForm.Next();
+ }
+ }
+}
diff --git a/Views/TourDemo.resx b/Views/TourDemo.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/Views/TourDemo.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/assets/screenshots/GridPanel.png b/assets/screenshots/GridPanel.png
index a1c94d5..04b8aa2 100644
Binary files a/assets/screenshots/GridPanel.png and b/assets/screenshots/GridPanel.png differ
diff --git a/assets/screenshots/Tour.png b/assets/screenshots/Tour.png
new file mode 100644
index 0000000..44bba70
Binary files /dev/null and b/assets/screenshots/Tour.png differ