aardio 文档

Popover 气泡卡片

Popover 是依附在某个 WinForms 控件上的气泡卡片,适合显示轻量详情、操作说明、带链接的短消息或小型自定义内容。

在 aardio 中,Popover 的目标控件应当是 AntdUI / WinForms 控件,例如 AntdUI.Button(winform.host)。如果只需要全局提示,优先考虑 MessageNotification

最小示例

import win.ui;
import dotNet;
import dotNet.AntdUI;

var winform = win.form(text="AntdUI Popover";right=520;bottom=320)
winform.add(host={cls="custom";left=20;top=20;right=200;bottom=64;z=1})

var btn = AntdUI.Button(winform.host);
btn.Text = "打开 Popover";
btn.Type = AntdUI.TTypeMini.Primary;

btn.Click = function(sender,e){
    var cfg = AntdUI.Popover.Config(btn,"订单提醒","您有 3 条待处理订单。");
    cfg.ArrowAlign = AntdUI.TAlign.Bottom;
    cfg.AutoClose = 0;
    cfg.Padding = System.Drawing.Size(16,12);
    AntdUI.Popover.open(cfg);
}

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

直接 open

常用重载:

AntdUI.Popover.open(btn,"标题","正文内容",AntdUI.TAlign.Bottom);
AntdUI.Popover.open(btn,"正文内容",AntdUI.TAlign.Bottom);

如果内容需要更复杂,推荐使用 Popover.Config,字段更清晰。

Popover.Config

常用构造:

var cfg1 = AntdUI.Popover.Config(btn,"标题","内容");
var cfg2 = AntdUI.Popover.Config(btn,"内容");

常用属性:

属性 说明
Control 依附的目标控件,通常是 AntdUI / WinForms 控件
Title 标题,可为空
Content 内容,可为字符串、控件、Popover.TextRow[]
ArrowAlign 箭头方向,AntdUI.TAlign
ArrowSize 箭头大小
AutoClose 自动关闭秒数,0 表示不自动关闭
Padding 内容边距,System.Drawing.Size
Gap 间距
Radius 圆角
Back / Fore 背景色与文字色
Focus 是否获取焦点
OnControlLoad 内容控件显示后的回调
OnClosing 关闭前回调
Tag 自定义数据

链式方法示例:

var cfg = AntdUI.Popover.Config(btn,"提示","可用配置对象设置样式");
cfg.SetArrow(AntdUI.TAlign.Bottom).SetAutoClose(3).SetPadding(16,12);
AntdUI.Popover.open(cfg);

Popover.TextRow 多段文本

TextRow 可把多段文本作为一行内容显示,并允许给某些片段设置颜色或点击回调。

import dotNet;
import System.Drawing;

var rows = dotNet.createArray(AntdUI.Popover.TextRow,4);
rows.SetValue(AntdUI.Popover.TextRow("您有"),0);
rows.SetValue(AntdUI.Popover.TextRow("3",2,0xFFFF0000),1);
rows.SetValue(AntdUI.Popover.TextRow("条待处理订单,"),2);

var link = AntdUI.Popover.TextRow("查看",2,0xFF0000FF);
link.SetCall(function(){
    return true;
});
rows.SetValue(link,3);

AntdUI.Popover.open(btn,rows,AntdUI.TAlign.BL);

常用属性:TextGapForeFontCallTag

内容控件

Content 可以传入 WinForms/AntdUI 控件,用于做小型表单或菜单。复杂面板建议使用 DrawerModal,避免 Popover 内容过重。

import System.Windows.Forms;
import System.Drawing;

var panel = System.Windows.Forms.Panel();
panel.Size = System.Drawing.Size(260,120);

var label = System.Windows.Forms.Label();
label.Text = "这里可以放自定义 WinForms 内容";
label.AutoSize = true;
panel.Controls.Add(label);

var cfg = AntdUI.Popover.Config(btn,"自定义内容",panel);
cfg.SetArrow(AntdUI.TAlign.Bottom).SetPadding(12);
AntdUI.Popover.open(cfg);

常见坑

Markdown 格式