🥝 新增穿梭框组件及数值混合功能

* chore: 删除重复的SVG资源文件
* feat(Transfer): 新增穿梭框组件及数值混合功能
* Merge branch 'main' of https://gitee.com/tjfzeishuai/AntdUI
* feat(TabHeader): 添加标签页关闭按钮显示控制功能
This commit is contained in:
汤俊飞
2025-06-30 09:53:36 +00:00
committed by Tom
parent d68c3b5295
commit 26affe869a
11 changed files with 2485 additions and 0 deletions

173
example/Demo/Controls/Transfer.Designer.cs generated Normal file
View File

@@ -0,0 +1,173 @@
using System.Drawing;
namespace Demo.Controls
{
partial class Transfer
{
/// <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.panel1 = new AntdUI.Panel();
this.transfer1 = new AntdUI.Transfer();
this.panel2 = new AntdUI.Panel();
this.btn_reload = new AntdUI.Button();
this.label_target = new AntdUI.Label();
this.label_source = new AntdUI.Label();
//this.label2 = new AntdUI.Label();
//this.switch_search = new AntdUI.Switch();
this.label1 = new AntdUI.Label();
this.switch_oneWay = new AntdUI.Switch();
this.panel1.SuspendLayout();
this.panel2.SuspendLayout();
this.SuspendLayout();
//
// panel1
//
this.panel1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.panel1.Controls.Add(this.transfer1);
this.panel1.Location = new System.Drawing.Point(20, 100);
this.panel1.Name = "panel1";
this.panel1.Size = new System.Drawing.Size(760, 380);
this.panel1.TabIndex = 0;
//
// transfer1
//
this.transfer1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.transfer1.Location = new System.Drawing.Point(20, 50);
this.transfer1.Name = "transfer1";
this.transfer1.Size = new System.Drawing.Size(720, 310);
this.transfer1.SourceTitle = "源列表";
this.transfer1.TabIndex = 0;
this.transfer1.TargetTitle = "目标列表";
//
// panel2
//
this.panel2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.panel2.Controls.Add(this.btn_reload);
this.panel2.Controls.Add(this.label_target);
this.panel2.Controls.Add(this.label_source);
//this.panel2.Controls.Add(this.label2);
//this.panel2.Controls.Add(this.switch_search);
this.panel2.Controls.Add(this.label1);
this.panel2.Controls.Add(this.switch_oneWay);
this.panel2.Location = new System.Drawing.Point(20, 20);
this.panel2.Name = "panel2";
this.panel2.Size = new System.Drawing.Size(760, 70);
this.panel2.TabIndex = 1;
//
// btn_reload
//
this.btn_reload.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btn_reload.Location = new System.Drawing.Point(650, 30);
this.btn_reload.Name = "btn_reload";
this.btn_reload.Size = new System.Drawing.Size(90, 30);
this.btn_reload.TabIndex = 6;
this.btn_reload.Text = "重新加载";
this.btn_reload.Click += new System.EventHandler(this.btn_reload_Click);
//
// label_target
//
this.label_target.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.label_target.Location = new System.Drawing.Point(520, 30);
this.label_target.Name = "label_target";
this.label_target.Size = new System.Drawing.Size(120, 30);
this.label_target.TabIndex = 5;
this.label_target.Text = "目标列表: 0项";
this.label_target.TextAlign = ContentAlignment.TopRight;
//
// label_source
//
this.label_source.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.label_source.Location = new System.Drawing.Point(400, 30);
this.label_source.Name = "label_source";
this.label_source.Size = new System.Drawing.Size(120, 30);
this.label_source.TabIndex = 4;
this.label_source.Text = "源列表: 10项";
this.label_source.TextAlign = ContentAlignment.TopRight;
//
// label2
//
//this.label2.Location = new System.Drawing.Point(180, 30);
//this.label2.Name = "label2";
//this.label2.Size = new System.Drawing.Size(80, 30);
//this.label2.TabIndex = 3;
//this.label2.Text = "显示搜索框:";
//
// switch_search
//
//this.switch_search.Location = new System.Drawing.Point(260, 30);
//this.switch_search.Name = "switch_search";
//this.switch_search.Size = new System.Drawing.Size(50, 30);
//this.switch_search.TabIndex = 2;
//
// label1
//
this.label1.Location = new System.Drawing.Point(20, 30);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(80, 30);
this.label1.TabIndex = 1;
this.label1.Text = "单向模式:";
//
// switch_oneWay
//
this.switch_oneWay.Location = new System.Drawing.Point(100, 30);
this.switch_oneWay.Name = "switch_oneWay";
this.switch_oneWay.Size = new System.Drawing.Size(50, 30);
this.switch_oneWay.TabIndex = 0;
//
// Transfer
//
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 17F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.panel2);
this.Controls.Add(this.panel1);
this.Name = "Transfer";
this.Size = new System.Drawing.Size(800, 500);
this.panel1.ResumeLayout(false);
this.panel2.ResumeLayout(false);
this.ResumeLayout(false);
}
#endregion
private AntdUI.Panel panel1;
private AntdUI.Transfer transfer1;
private AntdUI.Panel panel2;
private AntdUI.Label label1;
private AntdUI.Switch switch_oneWay;
//private AntdUI.Label label2;
//private AntdUI.Switch switch_search;
private AntdUI.Label label_source;
private AntdUI.Label label_target;
private AntdUI.Button btn_reload;
}
}

View File

@@ -0,0 +1,94 @@
using System;
using System.Collections.Generic;
using System.Windows.Forms;
namespace Demo.Controls
{
public partial class Transfer : UserControl
{
Form form;
public Transfer(Form _form)
{
form = _form;
InitializeComponent();
InitializeTransfer();
}
private void InitializeTransfer()
{
// 初始化穿梭框数据
var items = new List<AntdUI.TransferItem>
{
new AntdUI.TransferItem("选项1", 1),
new AntdUI.TransferItem("选项2", 2),
new AntdUI.TransferItem("选项3", 3),
new AntdUI.TransferItem("选项4", 4),
new AntdUI.TransferItem("选项5", 5),
new AntdUI.TransferItem("选项6", 6),
new AntdUI.TransferItem("选项7", 7),
new AntdUI.TransferItem("选项8", 8),
new AntdUI.TransferItem("选项9", 9),
new AntdUI.TransferItem("选项10", 10)
};
// 设置穿梭框数据源
transfer1.Items = items;
// 注册穿梭框事件
transfer1.TransferChanged += Transfer1_TransferChanged;
transfer1.Search += Transfer1_Search;
// 设置单向模式开关事件
switch_oneWay.CheckedChanged += Switch_oneWay_CheckedChanged;
// 设置搜索框开关事件
//switch_search.CheckedChanged += Switch_search_CheckedChanged;
}
private void Transfer1_TransferChanged(object sender, AntdUI.Transfer.TransferEventArgs e)
{
// 更新源列表和目标列表的数量显示
label_source.Text = $"源列表: {e.SourceItems.Count}项";
label_target.Text = $"目标列表: {e.TargetItems.Count}项";
}
private void Transfer1_Search(object sender, AntdUI.Transfer.SearchEventArgs e)
{
// 搜索事件处理
string listType = e.IsSource ? "源列表" : "目标列表";
AntdUI.Message.info(this.FindForm(), $"{listType}搜索: {e.SearchText}");
}
private void Switch_oneWay_CheckedChanged(object sender, EventArgs e)
{
// 设置是否单向模式
transfer1.OneWay = switch_oneWay.Checked;
}
private void Switch_search_CheckedChanged(object sender, EventArgs e)
{
// 设置是否显示搜索框
//transfer1.ShowSearch = switch_search.Checked;
}
private void btn_reload_Click(object sender, EventArgs e)
{
// 重新加载数据
var items = new List<AntdUI.TransferItem>();
Random random = new Random();
int count = random.Next(5, 15);
for (int i = 1; i <= count; i++)
{
items.Add(new AntdUI.TransferItem($"新选项{i}", i));
}
transfer1.Items = items;
transfer1.Reload();
// 更新源列表和目标列表的数量显示
label_source.Text = $"源列表: {transfer1.GetSourceItems().Count}项";
label_target.Text = $"目标列表: {transfer1.GetTargetItems().Count}项";
}
}
}// This file was created by the assistant

View 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>

Binary file not shown.

120
example/Demo/Overview.resx Normal file
View 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>

View File

@@ -508,6 +508,21 @@ namespace Demo {
}
}
/// <summary>
/// 查找类似 &lt;svg width=&quot;196px&quot; height=&quot;116px&quot; viewBox=&quot;0 0 196 116&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; xmlns:xlink=&quot;http://www.w3.org/1999/xlink&quot;&gt;
/// &lt;title&gt;编组 7&lt;/title&gt;
/// &lt;defs&gt;
/// &lt;path d=&quot;M5.84,3.5 L2.16,3.5 C2.0715,3.5 2,3.517875 2,3.54 L2,4.46 C2,4.482125 2.0715,4.5 2.16,4.5 L5.84,4.5 C5.9285,4.5 6,4.482125 6,4.46 L6,3.54 C6,3.517875 5.9285,3.5 5.84,3.5 Z&quot; id=&quot;path-1&quot;&gt;&lt;/path&gt;
/// &lt;/defs&gt;
/// &lt;g id=&quot;组件骨架图更新_202311&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
/// &lt;g id=&quot; [字符串的其余部分被截断]&quot;; 的本地化字符串。
/// </summary>
internal static string Transfer {
get {
return ResourceManager.GetString("Transfer", resourceCulture);
}
}
/// <summary>
/// 查找类似 &lt;svg viewBox=&quot;0 0 96 92&quot; xmlns:xlink=&quot;http://www.w3.org/1999/xlink&quot;&gt;&lt;g id=&quot;组件骨架图更新&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;&lt;g id=&quot;🎉-5.0-新版---黑&quot; transform=&quot;translate(-1302.000000, -3974.000000)&quot;&gt;&lt;g id=&quot;Tree&quot; transform=&quot;translate(1302.000000, 3974.000000)&quot;&gt;&lt;g id=&quot;编组-15&quot;&gt;&lt;g id=&quot;编组-12&quot; transform=&quot;translate(0.000000, 4.556962)&quot;&gt;&lt;rect id=&quot;矩形&quot; x=&quot;0&quot; y=&quot;0&quot; width=&quot;9.11392405&quot; height=&quot;6.07594937&quot;&gt;&lt;/rect&gt;&lt;path d=&quot;M7.36230459,4.76344426 L4.61669573,1.58717625 C4.53810644,1.49625892 4.38678025,1 [字符串的其余部分被截断]&quot;; 的本地化字符串。
/// </summary>

View File

@@ -288,4 +288,214 @@
<data name="ContextMenuStrip" xml:space="preserve">
<value>&lt;svg t="1744710281622" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5854" width="64" height="64"&gt;&lt;path d="M870.4 51.2H153.6a102.4 102.4 0 0 0-102.4 102.4v716.8a102.4 102.4 0 0 0 102.4 102.4h716.8a102.4 102.4 0 0 0 102.4-102.4V153.6a102.4 102.4 0 0 0-102.4-102.4z m51.2 768a102.4 102.4 0 0 1-102.4 102.4H204.8a102.4 102.4 0 0 1-102.4-102.4V204.8a102.4 102.4 0 0 1 102.4-102.4h614.4a102.4 102.4 0 0 1 102.4 102.4v614.4zM358.4 307.2h460.8V256H358.4v51.2z m0 204.8h460.8V460.8H358.4v51.2zM204.8 307.2h102.4V256H204.8v51.2z m0 204.8h102.4V460.8H204.8v51.2z m153.6 204.8h460.8v-51.2H358.4v51.2z m-153.6 0h102.4v-51.2H204.8v51.2z" fill="#1296db" p-id="5855"&gt;&lt;/path&gt;&lt;/svg&gt;</value>
</data>
<data name="Transfer" xml:space="preserve">
<value>&lt;svg width="196px" height="116px" viewBox="0 0 196 116" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"&gt;
&lt;title&gt;编组 7&lt;/title&gt;
&lt;defs&gt;
&lt;path d="M5.84,3.5 L2.16,3.5 C2.0715,3.5 2,3.517875 2,3.54 L2,4.46 C2,4.482125 2.0715,4.5 2.16,4.5 L5.84,4.5 C5.9285,4.5 6,4.482125 6,4.46 L6,3.54 C6,3.517875 5.9285,3.5 5.84,3.5 Z" id="path-1"&gt;&lt;/path&gt;
&lt;/defs&gt;
&lt;g id="组件骨架图更新_202311" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"&gt;
&lt;g id="🎉-5.0-新版---黑" transform="translate(-885.000000, -2421.000000)"&gt;
&lt;g id="编组-7" transform="translate(885.000000, 2421.000000)"&gt;
&lt;rect id="Rectangle-3-Copy-52" stroke-opacity="0.2" stroke="#FFFFFF" x="108.274936" y="0.5" width="87.2250639" height="115" rx="4"&gt;&lt;/rect&gt;
&lt;rect id="Dividers" fill-opacity="0.16" fill="#FFFFFF" x="108.276215" y="19.5" width="87.2225064" height="1"&gt;&lt;/rect&gt;
&lt;g id="save" transform="translate(114.291560, 6.000000)"&gt;&lt;/g&gt;
&lt;rect id="矩形" fill="#000000" fill-rule="nonzero" opacity="0" x="114.29156" y="6" width="8.02046036" height="8"&gt;&lt;/rect&gt;
&lt;rect id="Rectangle" stroke-opacity="0.2" stroke="#FFFFFF" stroke-width="0.8" x="114.69156" y="6.4" width="7.2" height="7.2" rx="2"&gt;&lt;/rect&gt;
&lt;g id="Icon/Checkbox-Normal" transform="translate(114.291560, 24.000000)"&gt;
&lt;g id="save"&gt;&lt;/g&gt;
&lt;rect id="矩形" fill="#000000" fill-rule="nonzero" opacity="0" x="0" y="0" width="8" height="8"&gt;&lt;/rect&gt;
&lt;rect id="Rectangle" stroke-opacity="0.2" stroke="#FFFFFF" stroke-width="0.8" x="0.4" y="0.4" width="7.2" height="7.2" rx="2"&gt;&lt;/rect&gt;
&lt;/g&gt;
&lt;g id="save" transform="translate(114.291560, 40.000000)"&gt;&lt;/g&gt;
&lt;rect id="矩形" fill="#000000" fill-rule="nonzero" opacity="0" x="114.29156" y="40" width="8" height="8"&gt;&lt;/rect&gt;
&lt;rect id="Rectangle" stroke-opacity="0.2" stroke="#FFFFFF" stroke-width="0.8" x="114.69156" y="40.4" width="7.2" height="7.2" rx="2"&gt;&lt;/rect&gt;
&lt;rect id="Rectangle-" stroke-opacity="0.2" stroke="#FFFFFF" x="0.5" y="0.5" width="87.2250639" height="115" rx="4"&gt;&lt;/rect&gt;
&lt;g id="Icon/Checkbox-ChecK-Part" transform="translate(6.015345, 6.000000)"&gt;
&lt;g id="save"&gt;&lt;/g&gt;
&lt;rect id="Rectangle-271" fill="#1677FF" x="0" y="0" width="8" height="8" rx="2"&gt;&lt;/rect&gt;
&lt;mask id="mask-2" fill="white"&gt;
&lt;use xlink:href="#path-1"&gt;&lt;/use&gt;
&lt;/mask&gt;
&lt;use id="Shape" fill="#FFFFFF" xlink:href="#path-1"&gt;&lt;/use&gt;
&lt;/g&gt;
&lt;rect id="Selected-Bg" fill="#111D2C" x="0.501278772" y="36" width="87.2225064" height="16"&gt;&lt;/rect&gt;
&lt;g id="Icon/Checkbox-Normal" transform="translate(6.000000, 24.000000)"&gt;
&lt;g id="save" transform="translate(0.015345, 0.000000)"&gt;&lt;/g&gt;
&lt;rect id="矩形" fill="#000000" fill-rule="nonzero" opacity="0" x="0.0153452685" y="0" width="8" height="8"&gt;&lt;/rect&gt;
&lt;rect id="Rectangle" stroke-opacity="0.2" stroke="#FFFFFF" stroke-width="0.8" x="0.4" y="0.4" width="7.2" height="7.2" rx="2"&gt;&lt;/rect&gt;
&lt;/g&gt;
&lt;g id="Icon/Checkbox-Normal" transform="translate(6.000000, 88.000000)"&gt;
&lt;g id="save" transform="translate(0.015345, 0.000000)"&gt;&lt;/g&gt;
&lt;rect id="矩形" fill="#000000" fill-rule="nonzero" opacity="0" x="0.0153452685" y="0" width="8" height="8"&gt;&lt;/rect&gt;
&lt;rect id="Rectangle" stroke-opacity="0.2" stroke="#FFFFFF" stroke-width="0.8" x="0.4" y="0.4" width="7.2" height="7.2" rx="2"&gt;&lt;/rect&gt;
&lt;/g&gt;
&lt;g id="Icon/Checkbox-Normal" transform="translate(6.000000, 104.000000)"&gt;
&lt;g id="save" transform="translate(0.015345, 0.000000)"&gt;&lt;/g&gt;
&lt;rect id="矩形" fill="#000000" fill-rule="nonzero" opacity="0" x="0.0153452685" y="0" width="8" height="8"&gt;&lt;/rect&gt;
&lt;rect id="Rectangle" stroke-opacity="0.2" stroke="#FFFFFF" stroke-width="0.8" x="0.4" y="0.4" width="7.2" height="7.2" rx="2"&gt;&lt;/rect&gt;
&lt;/g&gt;
&lt;g id="Icon/Checkbox-Selected" transform="translate(6.015345, 40.000000)"&gt;
&lt;g id="save"&gt;&lt;/g&gt;
&lt;rect id="矩形" fill="#000000" fill-rule="nonzero" opacity="0" x="0" y="0" width="8" height="8"&gt;&lt;/rect&gt;
&lt;rect id="Rectangle-271" fill="#1677FF" x="0" y="0" width="8" height="8" rx="2"&gt;&lt;/rect&gt;
&lt;path d="M5.88512665,2.627 L3.77912665,5.547 C3.65212665,5.724 3.38912665,5.724 3.26212665,5.547 L2.01512665,3.819 C1.97712665,3.766 2.01512665,3.692 2.08012665,3.692 L2.54912665,3.692 C2.65112665,3.692 2.74812665,3.741 2.80812665,3.825 L3.52012665,4.813 L5.09212665,2.633 C5.15212665,2.55 5.24812665,2.5 5.35112665,2.5 L5.82012665,2.5 C5.88512665,2.5 5.92312665,2.574 5.88512665,2.627 Z" id="Path" fill="#FFFFFF"&gt;&lt;/path&gt;
&lt;/g&gt;
&lt;g id="Icon/Checkbox-Selected-Disabled" transform="translate(5.965472, 72.000000)"&gt;
&lt;g id="save"&gt;&lt;/g&gt;
&lt;rect id="矩形" fill="#000000" fill-rule="nonzero" opacity="0" x="0" y="0" width="8" height="8"&gt;&lt;/rect&gt;
&lt;rect id="Rectangle-271" stroke-opacity="0.2" stroke="#FFFFFF" stroke-width="0.8" fill-opacity="0.08" fill="#FFFFFF" x="0.4" y="0.4" width="7.2" height="7.2" rx="2"&gt;&lt;/rect&gt;
&lt;path d="M5.88512665,2.627 L3.77912665,5.547 C3.65212665,5.724 3.38912665,5.724 3.26212665,5.547 L2.01512665,3.819 C1.97712665,3.766 2.01512665,3.692 2.08012665,3.692 L2.54912665,3.692 C2.65112665,3.692 2.74812665,3.741 2.80812665,3.825 L3.52012665,4.813 L5.09212665,2.633 C5.15212665,2.55 5.24812665,2.5 5.35112665,2.5 L5.82012665,2.5 C5.88512665,2.5 5.92312665,2.574 5.88512665,2.627 Z" id="Path" fill-opacity="0.25" fill="#FFFFFF"&gt;&lt;/path&gt;
&lt;/g&gt;
&lt;g id="Icon/Checkbox-Selected-Disabled" transform="translate(5.965472, 56.000000)"&gt;
&lt;g id="save"&gt;&lt;/g&gt;
&lt;rect id="矩形" fill="#000000" fill-rule="nonzero" opacity="0" x="0" y="0" width="8" height="8"&gt;&lt;/rect&gt;
&lt;rect id="Rectangle-271" stroke-opacity="0.2" stroke="#FFFFFF" stroke-width="0.8" fill-opacity="0.08" fill="#FFFFFF" x="0.4" y="0.4" width="7.2" height="7.2" rx="2"&gt;&lt;/rect&gt;
&lt;path d="M5.88512665,2.627 L3.77912665,5.547 C3.65212665,5.724 3.38912665,5.724 3.26212665,5.547 L2.01512665,3.819 C1.97712665,3.766 2.01512665,3.692 2.08012665,3.692 L2.54912665,3.692 C2.65112665,3.692 2.74812665,3.741 2.80812665,3.825 L3.52012665,4.813 L5.09212665,2.633 C5.15212665,2.55 5.24812665,2.5 5.35112665,2.5 L5.82012665,2.5 C5.88512665,2.5 5.92312665,2.574 5.88512665,2.627 Z" id="Path" fill-opacity="0.25" fill="#FFFFFF"&gt;&lt;/path&gt;
&lt;/g&gt;
&lt;g id="编组备份-66" transform="translate(170.000000, 7.000000)" fill="#FFFFFF" fill-opacity="0.88" fill-rule="nonzero"&gt;
&lt;rect id="矩形备份-7" x="18.2" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-6" x="15.6" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-5" x="13" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-4" x="10.4" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-3" x="7.8" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-2" x="5.2" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份" x="2.6" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形" x="0" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;/g&gt;
&lt;g id="编组备份-66" transform="translate(126.000000, 25.000000)" fill="#FFFFFF" fill-opacity="0.88" fill-rule="nonzero"&gt;
&lt;rect id="矩形备份-10" x="26" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-9" x="23.4" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-8" x="20.8" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-7" x="18.2" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-6" x="15.6" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-5" x="13" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-4" x="10.4" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-3" x="7.8" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-2" x="5.2" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份" x="2.6" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形" x="0" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;/g&gt;
&lt;g id="编组备份-66" transform="translate(126.000000, 41.000000)" fill="#FFFFFF" fill-opacity="0.88" fill-rule="nonzero"&gt;
&lt;rect id="矩形备份-10" x="26" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-9" x="23.4" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-8" x="20.8" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-7" x="18.2" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-6" x="15.6" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-5" x="13" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-4" x="10.4" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-3" x="7.8" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-2" x="5.2" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份" x="2.6" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形" x="0" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;/g&gt;
&lt;g id="编组备份-66" transform="translate(18.000000, 25.000000)" fill="#FFFFFF" fill-opacity="0.88" fill-rule="nonzero"&gt;
&lt;rect id="矩形备份-10" x="26" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-9" x="23.4" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-8" x="20.8" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-7" x="18.2" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-6" x="15.6" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-5" x="13" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-4" x="10.4" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-3" x="7.8" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-2" x="5.2" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份" x="2.6" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形" x="0" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;/g&gt;
&lt;g id="编组备份-66" transform="translate(18.000000, 89.000000)" fill="#FFFFFF" fill-opacity="0.88" fill-rule="nonzero"&gt;
&lt;rect id="矩形备份-10" x="26" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-9" x="23.4" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-8" x="20.8" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-7" x="18.2" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-6" x="15.6" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-5" x="13" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-4" x="10.4" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-3" x="7.8" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-2" x="5.2" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份" x="2.6" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形" x="0" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;/g&gt;
&lt;g id="编组备份-66" transform="translate(18.000000, 105.000000)" fill="#FFFFFF" fill-opacity="0.88" fill-rule="nonzero"&gt;
&lt;rect id="矩形备份-10" x="26" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-9" x="23.4" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-8" x="20.8" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-7" x="18.2" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-6" x="15.6" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-5" x="13" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-4" x="10.4" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-3" x="7.8" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-2" x="5.2" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份" x="2.6" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形" x="0" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;/g&gt;
&lt;g id="编组备份-66" transform="translate(18.000000, 41.000000)" fill="#FFFFFF" fill-opacity="0.88" fill-rule="nonzero"&gt;
&lt;rect id="矩形备份-10" x="26" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-9" x="23.4" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-8" x="20.8" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-7" x="18.2" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-6" x="15.6" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-5" x="13" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-4" x="10.4" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-3" x="7.8" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-2" x="5.2" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份" x="2.6" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形" x="0" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;/g&gt;
&lt;g id="编组备份-66" transform="translate(18.000000, 57.000000)" fill="#FFFFFF" fill-opacity="0.25" fill-rule="nonzero"&gt;
&lt;rect id="矩形备份-10" x="26" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-9" x="23.4" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-8" x="20.8" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-7" x="18.2" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-6" x="15.6" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-5" x="13" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-4" x="10.4" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-3" x="7.8" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-2" x="5.2" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份" x="2.6" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形" x="0" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;/g&gt;
&lt;g id="编组备份-66" transform="translate(18.000000, 73.000000)" fill="#FFFFFF" fill-opacity="0.25" fill-rule="nonzero"&gt;
&lt;rect id="矩形备份-10" x="26" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-9" x="23.4" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-8" x="20.8" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-7" x="18.2" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-6" x="15.6" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-5" x="13" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-4" x="10.4" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-3" x="7.8" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-2" x="5.2" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份" x="2.6" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形" x="0" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;/g&gt;
&lt;g id="编组-2" transform="translate(62.000000, 7.000000)" fill="#FFFFFF" fill-opacity="0.88" fill-rule="nonzero"&gt;
&lt;rect id="矩形备份-7" x="18.2" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-6" x="15.6" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-5" x="13" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-4" x="10.4" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-3" x="7.8" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-2" x="5.2" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份" x="2.6" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形" x="0" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;/g&gt;
&lt;rect id="Scrollbar" fill-opacity="0.45" fill="#FFFFFF" x="84.2180307" y="25" width="2.5" height="22" rx="1.25"&gt;&lt;/rect&gt;
&lt;rect id="Dividers" fill-opacity="0.16" fill="#FFFFFF" x="0.501278772" y="19.5" width="87.2225064" height="1"&gt;&lt;/rect&gt;
&lt;g id="Icon/Left-Disabled" transform="translate(92.250639, 58.000000)" fill="#000000"&gt;
&lt;rect id="Rectangle-271" stroke-opacity="0.15" stroke="#000000" stroke-width="0.5" fill-opacity="0.04" x="0.25" y="0.25" width="11.5" height="11.5" rx="2"&gt;&lt;/rect&gt;
&lt;g id="left" transform="translate(2.000000, 2.000000)"&gt;
&lt;rect id="矩形" fill-rule="nonzero" opacity="0" x="0" y="0" width="8" height="8"&gt;&lt;/rect&gt;
&lt;path d="M5.65625,1.70546875 L5.65625,1.1015625 C5.65625,1.04921875 5.59609375,1.0203125 5.55546875,1.05234375 L2.03359375,3.803125 C1.90546875,3.903125 1.90546875,4.09609375 2.03359375,4.19609375 L5.55546875,6.946875 C5.596875,6.97890625 5.65625,6.95 5.65625,6.89765625 L5.65625,6.29375 C5.65625,6.25546875 5.63828125,6.21875 5.60859375,6.1953125 L2.79609375,4 L5.60859375,1.80390625 C5.63828125,1.78046875 5.65625,1.74375 5.65625,1.70546875 Z" id="路径" fill-opacity="0.25"&gt;&lt;/path&gt;
&lt;/g&gt;
&lt;/g&gt;
&lt;g id="Icon/Right-Selected" transform="translate(92.250639, 44.000000)"&gt;
&lt;rect id="Rectangle-271" fill="#1677FF" x="0" y="0" width="12" height="12" rx="2"&gt;&lt;/rect&gt;
&lt;g id="right" transform="translate(2.000000, 2.000000)"&gt;
&lt;rect id="矩形" fill="#000000" fill-rule="nonzero" opacity="0" x="0" y="0" width="8" height="8"&gt;&lt;/rect&gt;
&lt;path d="M5.98203125,3.803125 L2.46015625,1.05234375 C2.41875,1.0203125 2.359375,1.04921875 2.359375,1.1015625 L2.359375,1.70546875 C2.359375,1.74375 2.37734375,1.78046875 2.40703125,1.80390625 L5.21953125,4 L2.40703125,6.19609375 C2.3765625,6.21953125 2.359375,6.25625 2.359375,6.29453125 L2.359375,6.8984375 C2.359375,6.95078125 2.41953125,6.9796875 2.46015625,6.94765625 L5.98203125,4.196875 C6.11015625,4.096875 6.11015625,3.903125 5.98203125,3.803125 Z" id="路径" fill="#FFFFFF"&gt;&lt;/path&gt;
&lt;/g&gt;
&lt;/g&gt;
&lt;/g&gt;
&lt;/g&gt;
&lt;/g&gt;
&lt;/svg&gt;</value>
</data>
</root>

View File

@@ -508,6 +508,21 @@ namespace Demo {
}
}
/// <summary>
/// 查找类似 &lt;svg width=&quot;196px&quot; height=&quot;116px&quot; viewBox=&quot;0 0 196 116&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; xmlns:xlink=&quot;http://www.w3.org/1999/xlink&quot;&gt;
/// &lt;title&gt;编组 6&lt;/title&gt;
/// &lt;defs&gt;
/// &lt;path d=&quot;M5.84,3.5 L2.16,3.5 C2.0715,3.5 2,3.517875 2,3.54 L2,4.46 C2,4.482125 2.0715,4.5 2.16,4.5 L5.84,4.5 C5.9285,4.5 6,4.482125 6,4.46 L6,3.54 C6,3.517875 5.9285,3.5 5.84,3.5 Z&quot; id=&quot;path-1&quot;&gt;&lt;/path&gt;
/// &lt;/defs&gt;
/// &lt;g id=&quot;组件骨架图更新_202311&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
/// &lt;g id=&quot; [字符串的其余部分被截断]&quot;; 的本地化字符串。
/// </summary>
internal static string Transfer {
get {
return ResourceManager.GetString("Transfer", resourceCulture);
}
}
/// <summary>
/// 查找类似 &lt;svg viewBox=&quot;0 0 91 92&quot; xmlns:xlink=&quot;http://www.w3.org/1999/xlink&quot;&gt;&lt;g id=&quot;组件骨架图更新&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;&lt;g id=&quot;🎉-5.0-新版&quot; transform=&quot;translate(-1302.000000, -3974.000000)&quot;&gt;&lt;g id=&quot;Tree&quot; transform=&quot;translate(1302.000000, 3974.000000)&quot;&gt;&lt;g id=&quot;编组-15&quot;&gt;&lt;g id=&quot;编组-12&quot; transform=&quot;translate(0.000000, 4.556962)&quot;&gt;&lt;rect id=&quot;矩形&quot; x=&quot;0&quot; y=&quot;0&quot; width=&quot;9.11392405&quot; height=&quot;6.07594937&quot;&gt;&lt;/rect&gt;&lt;path d=&quot;M7.36230459,4.76344426 L4.61669573,1.58717625 C4.53810644,1.49625892 4.38678025,1.496 [字符串的其余部分被截断]&quot;; 的本地化字符串。
/// </summary>

View File

@@ -288,4 +288,217 @@
<data name="ContextMenuStrip" xml:space="preserve">
<value>&lt;svg t="1744710281622" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5854" width="64" height="64"&gt;&lt;path d="M870.4 51.2H153.6a102.4 102.4 0 0 0-102.4 102.4v716.8a102.4 102.4 0 0 0 102.4 102.4h716.8a102.4 102.4 0 0 0 102.4-102.4V153.6a102.4 102.4 0 0 0-102.4-102.4z m51.2 768a102.4 102.4 0 0 1-102.4 102.4H204.8a102.4 102.4 0 0 1-102.4-102.4V204.8a102.4 102.4 0 0 1 102.4-102.4h614.4a102.4 102.4 0 0 1 102.4 102.4v614.4zM358.4 307.2h460.8V256H358.4v51.2z m0 204.8h460.8V460.8H358.4v51.2zM204.8 307.2h102.4V256H204.8v51.2z m0 204.8h102.4V460.8H204.8v51.2z m153.6 204.8h460.8v-51.2H358.4v51.2z m-153.6 0h102.4v-51.2H204.8v51.2z" fill="#1296db" p-id="5855"&gt;&lt;/path&gt;&lt;/svg&gt;</value>
</data>
<data name="Transfer" xml:space="preserve">
<value>&lt;svg width="196px" height="116px" viewBox="0 0 196 116" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"&gt;
&lt;title&gt;编组 6&lt;/title&gt;
&lt;defs&gt;
&lt;path d="M5.84,3.5 L2.16,3.5 C2.0715,3.5 2,3.517875 2,3.54 L2,4.46 C2,4.482125 2.0715,4.5 2.16,4.5 L5.84,4.5 C5.9285,4.5 6,4.482125 6,4.46 L6,3.54 C6,3.517875 5.9285,3.5 5.84,3.5 Z" id="path-1"&gt;&lt;/path&gt;
&lt;/defs&gt;
&lt;g id="组件骨架图更新_202311" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"&gt;
&lt;g id="🎉-5.0-新版---白" transform="translate(-885.000000, -2421.000000)"&gt;
&lt;g id="编组-6" transform="translate(885.000000, 2421.000000)"&gt;
&lt;rect id="Rectangle-3-Copy-52" stroke-opacity="0.15" stroke="#000000" stroke-width="0.5" fill="#FFFFFF" x="108.024936" y="0.25" width="87.7250639" height="115.5" rx="4"&gt;&lt;/rect&gt;
&lt;rect id="Dividers" fill-opacity="0.06" fill="#000000" x="108.276215" y="19.5" width="87.2225064" height="1"&gt;&lt;/rect&gt;
&lt;g id="编组备份-66" transform="translate(170.000000, 7.000000)" fill="#000000" fill-opacity="0.88" fill-rule="nonzero"&gt;
&lt;rect id="矩形备份-7" x="18.2" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-6" x="15.6" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-5" x="13" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-4" x="10.4" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-3" x="7.8" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-2" x="5.2" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份" x="2.6" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形" x="0" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;/g&gt;
&lt;g id="Icon/Checkbox-Normal" transform="translate(114.291560, 6.000000)"&gt;
&lt;g id="save"&gt;&lt;/g&gt;
&lt;rect id="矩形" fill="#000000" fill-rule="nonzero" opacity="0" x="0" y="0" width="8.02046036" height="8"&gt;&lt;/rect&gt;
&lt;rect id="Rectangle" stroke-opacity="0.15" stroke="#000000" stroke-width="0.5" fill="#FFFFFF" x="0.25" y="0.25" width="7.5" height="7.5" rx="2"&gt;&lt;/rect&gt;
&lt;/g&gt;
&lt;g id="Icon/Checkbox-Normal" transform="translate(114.291560, 24.000000)"&gt;
&lt;g id="save"&gt;&lt;/g&gt;
&lt;rect id="矩形" fill="#000000" fill-rule="nonzero" opacity="0" x="0" y="0" width="8" height="8"&gt;&lt;/rect&gt;
&lt;rect id="Rectangle" stroke-opacity="0.15" stroke="#000000" stroke-width="0.5" fill="#FFFFFF" x="0.25" y="0.25" width="7.5" height="7.5" rx="2"&gt;&lt;/rect&gt;
&lt;/g&gt;
&lt;g id="编组备份-66" transform="translate(126.000000, 25.000000)" fill="#000000" fill-opacity="0.88" fill-rule="nonzero"&gt;
&lt;rect id="矩形备份-10" x="26" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-9" x="23.4" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-8" x="20.8" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-7" x="18.2" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-6" x="15.6" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-5" x="13" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-4" x="10.4" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-3" x="7.8" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-2" x="5.2" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份" x="2.6" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形" x="0" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;/g&gt;
&lt;g id="Icon/Checkbox-Normal" transform="translate(114.291560, 40.000000)"&gt;
&lt;g id="save"&gt;&lt;/g&gt;
&lt;rect id="矩形" fill="#000000" fill-rule="nonzero" opacity="0" x="0" y="0" width="8" height="8"&gt;&lt;/rect&gt;
&lt;rect id="Rectangle" stroke-opacity="0.15" stroke="#000000" stroke-width="0.5" fill="#FFFFFF" x="0.25" y="0.25" width="7.5" height="7.5" rx="2"&gt;&lt;/rect&gt;
&lt;/g&gt;
&lt;g id="编组备份-66" transform="translate(126.000000, 41.000000)" fill="#000000" fill-opacity="0.88" fill-rule="nonzero"&gt;
&lt;rect id="矩形备份-10" x="26" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-9" x="23.4" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-8" x="20.8" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-7" x="18.2" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-6" x="15.6" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-5" x="13" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-4" x="10.4" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-3" x="7.8" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-2" x="5.2" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份" x="2.6" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形" x="0" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;/g&gt;
&lt;rect id="Rectangle-" stroke-opacity="0.15" stroke="#000000" stroke-width="0.5" fill="#FFFFFF" x="0.25" y="0.25" width="87.7250639" height="115.5" rx="4"&gt;&lt;/rect&gt;
&lt;g id="Icon/Checkbox-ChecK-Part" transform="translate(6.015345, 6.000000)"&gt;
&lt;g id="save"&gt;&lt;/g&gt;
&lt;rect id="Rectangle-271" fill="#1677FF" x="0" y="0" width="8" height="8" rx="2"&gt;&lt;/rect&gt;
&lt;mask id="mask-2" fill="white"&gt;
&lt;use xlink:href="#path-1"&gt;&lt;/use&gt;
&lt;/mask&gt;
&lt;use id="Shape" fill="#FFFFFF" xlink:href="#path-1"&gt;&lt;/use&gt;
&lt;/g&gt;
&lt;rect id="Selected-Bg" fill="#E6F4FF" x="0.501278772" y="36" width="87.2225064" height="16"&gt;&lt;/rect&gt;
&lt;g id="Icon/Checkbox-Normal" transform="translate(6.015345, 24.000000)"&gt;
&lt;g id="save"&gt;&lt;/g&gt;
&lt;rect id="矩形" fill="#000000" fill-rule="nonzero" opacity="0" x="0" y="0" width="8" height="8"&gt;&lt;/rect&gt;
&lt;rect id="Rectangle" stroke-opacity="0.15" stroke="#000000" stroke-width="0.5" fill="#FFFFFF" x="0.25" y="0.25" width="7.5" height="7.5" rx="2"&gt;&lt;/rect&gt;
&lt;/g&gt;
&lt;g id="编组备份-66" transform="translate(18.000000, 25.000000)" fill="#000000" fill-opacity="0.88" fill-rule="nonzero"&gt;
&lt;rect id="矩形备份-10" x="26" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-9" x="23.4" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-8" x="20.8" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-7" x="18.2" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-6" x="15.6" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-5" x="13" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-4" x="10.4" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-3" x="7.8" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-2" x="5.2" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份" x="2.6" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形" x="0" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;/g&gt;
&lt;g id="Icon/Checkbox-Normal" transform="translate(6.015345, 88.000000)"&gt;
&lt;g id="save"&gt;&lt;/g&gt;
&lt;rect id="矩形" fill="#000000" fill-rule="nonzero" opacity="0" x="0" y="0" width="8" height="8"&gt;&lt;/rect&gt;
&lt;rect id="Rectangle" stroke-opacity="0.15" stroke="#000000" stroke-width="0.5" fill="#FFFFFF" x="0.25" y="0.25" width="7.5" height="7.5" rx="2"&gt;&lt;/rect&gt;
&lt;/g&gt;
&lt;g id="编组备份-66" transform="translate(18.000000, 89.000000)" fill="#000000" fill-opacity="0.88" fill-rule="nonzero"&gt;
&lt;rect id="矩形备份-10" x="26" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-9" x="23.4" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-8" x="20.8" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-7" x="18.2" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-6" x="15.6" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-5" x="13" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-4" x="10.4" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-3" x="7.8" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-2" x="5.2" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份" x="2.6" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形" x="0" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;/g&gt;
&lt;g id="Icon/Checkbox-Normal" transform="translate(6.015345, 104.000000)"&gt;
&lt;g id="save"&gt;&lt;/g&gt;
&lt;rect id="矩形" fill="#000000" fill-rule="nonzero" opacity="0" x="0" y="0" width="8" height="8"&gt;&lt;/rect&gt;
&lt;rect id="Rectangle" stroke-opacity="0.15" stroke="#000000" stroke-width="0.5" fill="#FFFFFF" x="0.25" y="0.25" width="7.5" height="7.5" rx="2"&gt;&lt;/rect&gt;
&lt;/g&gt;
&lt;g id="编组备份-66" transform="translate(18.000000, 105.000000)" fill="#000000" fill-opacity="0.88" fill-rule="nonzero"&gt;
&lt;rect id="矩形备份-10" x="26" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-9" x="23.4" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-8" x="20.8" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-7" x="18.2" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-6" x="15.6" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-5" x="13" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-4" x="10.4" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-3" x="7.8" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-2" x="5.2" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份" x="2.6" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形" x="0" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;/g&gt;
&lt;g id="Icon/Checkbox-Selected" transform="translate(6.015345, 40.000000)"&gt;
&lt;g id="save"&gt;&lt;/g&gt;
&lt;rect id="矩形" fill="#000000" fill-rule="nonzero" opacity="0" x="0" y="0" width="8" height="8"&gt;&lt;/rect&gt;
&lt;rect id="Rectangle-271" fill="#1677FF" x="0" y="0" width="8" height="8" rx="2"&gt;&lt;/rect&gt;
&lt;path d="M5.88512665,2.627 L3.77912665,5.547 C3.65212665,5.724 3.38912665,5.724 3.26212665,5.547 L2.01512665,3.819 C1.97712665,3.766 2.01512665,3.692 2.08012665,3.692 L2.54912665,3.692 C2.65112665,3.692 2.74812665,3.741 2.80812665,3.825 L3.52012665,4.813 L5.09212665,2.633 C5.15212665,2.55 5.24812665,2.5 5.35112665,2.5 L5.82012665,2.5 C5.88512665,2.5 5.92312665,2.574 5.88512665,2.627 Z" id="Path" fill="#FFFFFF"&gt;&lt;/path&gt;
&lt;/g&gt;
&lt;g id="编组备份-66" transform="translate(18.000000, 41.000000)" fill="#000000" fill-opacity="0.88" fill-rule="nonzero"&gt;
&lt;rect id="矩形备份-10" x="26" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-9" x="23.4" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-8" x="20.8" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-7" x="18.2" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-6" x="15.6" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-5" x="13" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-4" x="10.4" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-3" x="7.8" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-2" x="5.2" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份" x="2.6" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形" x="0" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;/g&gt;
&lt;g id="Icon/Checkbox-Normal-Disabled" transform="translate(6.015345, 56.000000)"&gt;
&lt;g id="save"&gt;&lt;/g&gt;
&lt;rect id="矩形" fill="#000000" fill-rule="nonzero" opacity="0" x="0" y="0" width="8" height="8"&gt;&lt;/rect&gt;
&lt;rect id="Rectangle-271" stroke-opacity="0.15" stroke="#000000" stroke-width="0.5" fill-opacity="0.04" fill="#000000" x="0.25" y="0.25" width="7.5" height="7.5" rx="2"&gt;&lt;/rect&gt;
&lt;/g&gt;
&lt;g id="编组备份-66" transform="translate(18.000000, 57.000000)" fill="#000000" fill-opacity="0.25" fill-rule="nonzero"&gt;
&lt;rect id="矩形备份-10" x="26" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-9" x="23.4" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-8" x="20.8" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-7" x="18.2" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-6" x="15.6" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-5" x="13" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-4" x="10.4" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-3" x="7.8" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-2" x="5.2" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份" x="2.6" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形" x="0" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;/g&gt;
&lt;g id="Icon/Checkbox-Selected-Disabled" transform="translate(5.965472, 72.000000)"&gt;
&lt;g id="save"&gt;&lt;/g&gt;
&lt;rect id="矩形" fill="#000000" fill-rule="nonzero" opacity="0" x="0" y="0" width="8" height="8"&gt;&lt;/rect&gt;
&lt;rect id="Rectangle-271" stroke-opacity="0.15" stroke="#000000" stroke-width="0.5" fill-opacity="0.04" fill="#000000" x="0.25" y="0.25" width="7.5" height="7.5" rx="2"&gt;&lt;/rect&gt;
&lt;path d="M5.88512665,2.627 L3.77912665,5.547 C3.65212665,5.724 3.38912665,5.724 3.26212665,5.547 L2.01512665,3.819 C1.97712665,3.766 2.01512665,3.692 2.08012665,3.692 L2.54912665,3.692 C2.65112665,3.692 2.74812665,3.741 2.80812665,3.825 L3.52012665,4.813 L5.09212665,2.633 C5.15212665,2.55 5.24812665,2.5 5.35112665,2.5 L5.82012665,2.5 C5.88512665,2.5 5.92312665,2.574 5.88512665,2.627 Z" id="Path" fill-opacity="0.25" fill="#000000"&gt;&lt;/path&gt;
&lt;/g&gt;
&lt;g id="编组备份-66" transform="translate(18.000000, 73.000000)" fill="#000000" fill-opacity="0.25" fill-rule="nonzero"&gt;
&lt;rect id="矩形备份-10" x="26" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-9" x="23.4" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-8" x="20.8" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-7" x="18.2" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-6" x="15.6" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-5" x="13" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-4" x="10.4" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-3" x="7.8" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-2" x="5.2" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份" x="2.6" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形" x="0" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;/g&gt;
&lt;g id="编组-2" transform="translate(62.000000, 7.000000)" fill="#000000" fill-opacity="0.88" fill-rule="nonzero"&gt;
&lt;rect id="矩形备份-7" x="18.2" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-6" x="15.6" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-5" x="13" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-4" x="10.4" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-3" x="7.8" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份-2" x="5.2" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形备份" x="2.6" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;rect id="矩形" x="0" y="0" width="1" height="6"&gt;&lt;/rect&gt;
&lt;/g&gt;
&lt;rect id="Scrollbar" fill-opacity="0.45" fill="#000000" x="84.2180307" y="25" width="2.5" height="22" rx="1.25"&gt;&lt;/rect&gt;
&lt;rect id="Dividers" fill-opacity="0.06" fill="#000000" x="0.501278772" y="19.5" width="87.2225064" height="1"&gt;&lt;/rect&gt;
&lt;g id="Icon/Left-Disabled" transform="translate(92.250639, 58.000000)" fill="#000000"&gt;
&lt;rect id="Rectangle-271" stroke-opacity="0.15" stroke="#000000" stroke-width="0.5" fill-opacity="0.04" x="0.25" y="0.25" width="11.5" height="11.5" rx="2"&gt;&lt;/rect&gt;
&lt;g id="left" transform="translate(2.000000, 2.000000)"&gt;
&lt;rect id="矩形" fill-rule="nonzero" opacity="0" x="0" y="0" width="8" height="8"&gt;&lt;/rect&gt;
&lt;path d="M5.65625,1.70546875 L5.65625,1.1015625 C5.65625,1.04921875 5.59609375,1.0203125 5.55546875,1.05234375 L2.03359375,3.803125 C1.90546875,3.903125 1.90546875,4.09609375 2.03359375,4.19609375 L5.55546875,6.946875 C5.596875,6.97890625 5.65625,6.95 5.65625,6.89765625 L5.65625,6.29375 C5.65625,6.25546875 5.63828125,6.21875 5.60859375,6.1953125 L2.79609375,4 L5.60859375,1.80390625 C5.63828125,1.78046875 5.65625,1.74375 5.65625,1.70546875 Z" id="路径" fill-opacity="0.25"&gt;&lt;/path&gt;
&lt;/g&gt;
&lt;/g&gt;
&lt;g id="Icon/Right-Selected" transform="translate(92.250639, 44.000000)"&gt;
&lt;rect id="Rectangle-271" fill="#1677FF" x="0" y="0" width="12" height="12" rx="2"&gt;&lt;/rect&gt;
&lt;g id="right" transform="translate(2.000000, 2.000000)"&gt;
&lt;rect id="矩形" fill="#000000" fill-rule="nonzero" opacity="0" x="0" y="0" width="8" height="8"&gt;&lt;/rect&gt;
&lt;path d="M5.98203125,3.803125 L2.46015625,1.05234375 C2.41875,1.0203125 2.359375,1.04921875 2.359375,1.1015625 L2.359375,1.70546875 C2.359375,1.74375 2.37734375,1.78046875 2.40703125,1.80390625 L5.21953125,4 L2.40703125,6.19609375 C2.3765625,6.21953125 2.359375,6.25625 2.359375,6.29453125 L2.359375,6.8984375 C2.359375,6.95078125 2.41953125,6.9796875 2.46015625,6.94765625 L5.98203125,4.196875 C6.11015625,4.096875 6.11015625,3.903125 5.98203125,3.803125 Z" id="路径" fill="#FFFFFF"&gt;&lt;/path&gt;
&lt;/g&gt;
&lt;/g&gt;
&lt;/g&gt;
&lt;/g&gt;
&lt;/g&gt;
&lt;/svg&gt;</value>
</data>
</root>

File diff suppressed because it is too large Load Diff

View File

@@ -823,6 +823,45 @@ namespace AntdUI
public static Point AlignPoint(this TAlign align, Rectangle rect, int width, int height) => AlignPoint(align, rect.Location, rect.Size, width, height);
public static T ValueBlend<T>(T start, T end, double t)
where T : struct
{
if (typeof(T) == typeof(float))
{
float s = Convert.ToSingle(start);
float e = Convert.ToSingle(end);
return (T)(object)(s + (e - s) * (float)t);
}
else if (typeof(T) == typeof(double))
{
double s = Convert.ToDouble(start);
double e = Convert.ToDouble(end);
return (T)(object)(s + (e - s) * t);
}
else if (typeof(T) == typeof(int))
{
int s = Convert.ToInt32(start);
int e = Convert.ToInt32(end);
return (T)(object)(s + (int)Math.Round((e - s) * t));
}
else if (typeof(T) == typeof(Color))
{
Color startColor = (Color)(object)start;
Color endColor = (Color)(object)end;
return (T)(object)Color.FromArgb(
(int)Math.Round(startColor.A + (endColor.A - startColor.A) * t),
(int)Math.Round(startColor.R + (endColor.R - startColor.R) * t),
(int)Math.Round(startColor.G + (endColor.G - startColor.G) * t),
(int)Math.Round(startColor.B + (endColor.B - startColor.B) * t)
);
}
else
{
throw new NotSupportedException($"Type {typeof(T)} is not supported by ValueBlend.");
}
}
#endregion
}
}