AntdUI 官方示例主要是 C# WinForms。迁移到 aardio 时,核心是把创建控件的逻辑改为“aardio custom 宿主 + AntdUI 构造”。
C#:
var btn = new AntdUI.Button();
btn.Text = "提交";
btn.Click += (s,e) => { };
aardio:
var btn = AntdUI.Button(winform.host);
btn.Text = "提交";
btn.Click = function(sender,e){
}
C# 示例常把多个控件直接加到 this.Controls。在 aardio 中,如果一个 custom 宿主内要放多个 AntdUI/WinForms 子控件,建议先创建 AntdUI.BaseForm:
import win.ui;
import dotNet.AntdUI;
import System.Drawing;
var winform = win.form(text="迁移 C# 示例";right=520;bottom=260);
winform.add(host={cls="custom";left=0;top=0;right=520;bottom=260;z=1});
var baseForm = AntdUI.BaseForm(winform.host);
var input = AntdUI.Input();
input.Parent = baseForm;
input.Location = System.Drawing.Point(30,30);
input.Size = System.Drawing.Size(260,38);
input.PlaceholderText = "请输入内容";
var btn = AntdUI.Button();
btn.Parent = baseForm;
btn.Location = System.Drawing.Point(310,30);
btn.Size = System.Drawing.Size(120,38);
btn.Text = "提交";
btn.Type = AntdUI.TTypeMini.Primary;
btn.Click = function(sender,e){
input.Text = "已提交";
}
winform.show();
win.loopMessage();
new AntdUI.Xxx() 在 aardio 中通常写为 AntdUI.Xxx() 或 AntdUI.Xxx(winform.host),aardio 中不需要 new 关键字。+= 改为 aardio 属性赋值回调(使用 = 而不是 +=)。在 aardio 中对 event 赋值总是追加而不是覆盖(对delegate 赋值则总是覆盖而不是追加)。Items.Add(...)、Controls.Add(...) 的用法保持不变。netObj[1] 会被 aardio 转换为 netObj.Item[0]。但如果不是直接使用下标操作符(例如调用 .NET 函数时传参、对 Item 使用下标操作符) aardio 则不会对 .NET 索引值执行 1-based » 0-based 转换。function(sender,e){}。需要注意 aardio 中的 lambda 表达式 lambda (){} 里的 {} 是表构造器而不是用于包围语句块的标记。System.Drawing.Point/Size/Padding 在 aardio 中可直接导入对应 .NET 命名空间后调用。System.Drawing.Color 在 aardio 中就是 0xAARRGGBB 格式数值;将该数值传给 .NET 颜色属性时会自动转换为 System.Drawing.Color。此格式与 GDI+、gdip 库及 plus 控件运行时颜色兼容,不需要调用 System.Drawing.Color.FromArgb(...)。