aardio 文档

dotNet.AntdUI 扩展库

dotNet.AntdUI 用于在 aardio 窗口程序中调用开源 .NET WinForms 组件库 AntdUI。导入库后,

AntdUI 提供了丰富的桌面 UI 控件。可以方便地实现一些 aardio 原生控件未提供的控件与效果。需要注意每个技术方案都有适合的场景。 适合网页前端技术的界面应当使用 web.view 。使用 aardio 原生控件就可以快速实现的界面,则不必把简单的事复杂化。在 aardio 窗口里可以方便地混合各种技术方案。 例如在同一个界面上可以同时包含 aardio 原生控件/plus 控件/web.view/AntdUI 控件。

AntdUI 是一个 WinForms/.NET 组件库,不要与网页前端界面库 antd 混淆。

两种方案

在 aardio 中使用 AntdUI 有两种可选的方式:

  1. 创建一个 AntdUI.BaseForm 管理所有 AntdUI 控件,然后按 AntdUI 的方式往 BaseForm 上添加控件。

    这种方法需要自己逐个设置代码的位置、大小等参数。

    要特别注意必须在初始化好所有 AntdUI 控件以后再调用 winform.show() 显示窗体,以避免 AntdUI.BaseForm 提前初始化(指创建真实的物理窗口句柄)。 这是因为 AntdUI.BaseForm 在初始化物理窗口时执行 DPI 自动缩放,如果错过了这个唯一的时机就需要显式调用 AutoDpi 方法缩放控件(这难以控制且容易出错,多次调用会重复放大)。

    细节请参考 AntdUI.Radio 控件示例

  2. 每个 AntdUI 都绑定一个 aardio 宿主控件。

    例如 var btn = AntdUI.Button(winform.custom)。这种方法代码较为简单,DPI 缩放/窗口自动缩放/九宫格自动布局等琐碎的工w作都交由 aardio 自动处理。本文档将主要采用这种方法。

基本步骤

  1. import win.ui 创建 aardio 窗口。
  2. 在窗口上放 custom 控件作为 .NET 控件宿主。
  3. import dotNet.AntdUI 导入扩展库。
  4. 调用 AntdUI.控件名(winform.custom) 创建控件。
  5. 像操作 WinForms 控件一样设置属性、绑定事件。

第一个示例

嵌入 AntdUI 控件

import win.ui;
/*DSG{{*/
var winform = win.form(text="dotNet.AntdUI 快速上手";right=480;bottom=260)
winform.add(
btnHost={cls="custom.button";text="点我";left=40;top=40;right=180;bottom=78;z=1};
inputHost={cls="custom.edit";left=40;top=100;right=360;bottom=138;z=2}
)
/*}}*/

import dotNet.AntdUI;

var btn = AntdUI.Button(winform.btnHost);
btn.Type = AntdUI.TTypeMini.Primary;

var input = AntdUI.Input(winform.inputHost);
input.PlaceholderText = "这里显示按钮点击结果";
input.AllowClear = true;

btn.Click = function(sender,e){
    input.Text = "Hello AntdUI";

    //以属性指定 .NET 事件或委托时,owner 参数指向 .NET 对象自身
    //onwer.Text = "Hello AntdUI";
}

winform.show();
win.loopMessage();

必须使用 custom 控件创建 .NET 控件的宿主窗口。aardio 会设置 .NET 控件自动填满 aardio 窗口,并移除三维边框/双边框样式,同时会将 aardio 控件的禁用、显示、文本属性转移给 .NET 控件,忽略其他属性。

在窗体设计器中自定义 custom 控件的外观

AntdUI 控件无法像 aardio 原生控件那样在窗体设计器中实现所见即所得的效果,但是可以使用 custom 控件做一些简单的模拟,以实现至少不需要手写控件的位置、布局、自动缩放等代码。

自动缩放

aardio 窗口支持自适应窗口缩放与 DPI 缩放,或显式指定控件的固定边距自动缩放等属性。

一个常见的技巧是在 aardio 窗体设计器上点击右键菜单中的九宫格缩放布局,自动设置所有控件构造参数表中 dl,dt,dr,db 字段的值。「九宫格缩放布局」是指将界面划分为「4 角 + 4 边 + 中间」共计九个方形格子,控件哪侧的边位于哪则的方格内则该边固定边距,例如控件的左侧边位于左侧的格子内则左边距固定,其余类推,使靠边的内容固定,中间的内容自由拉伸,缩放自然。

例如控件构造参数dl=1;dt=1;dr=1;db=1表示四方固定边距,等价的写法是 anchors={left=true;top=true;right=true;bottom=true}

例如在创建控件时指定或者 可固定控件的四方边距随父窗口自动缩放。

文档结构

常见注意事项

Markdown 格式