官方gitee:doc/wiki/zh/Control/FloatButton.md · AntdUI/AntdUI - Gitee.com
FloatButton悬浮按钮并没有直接提供该控件,而是通过动态配置模式实现高度灵活性。需要利用 FloatButton.Config
与 ConfigBtn
定制悬浮按钮组
什么是 FloatButton?悬浮按钮是一种固定在屏幕角落的圆形按钮集合,点击后展开多个子按钮,如“发布内容”、“快捷导航”等。
FloatButton.Config
FloatButton.Config
是悬浮按钮的全局配置对象,控制按钮组的位置、样式、交互等核心属性。
名称 | 描述 | 类型 | 默认值 |
Form | 所属窗口 | Form |
|
Font | 字体 | Font | |
Control | 所属控件 | Control | |
Align | 方向 | BR | |
Vertical | 是否垂直方向 | bool | true |
TopMost | 是否置顶 | bool | false |
Size | 大小 | int | 40 |
MarginX | 边距X | int | 24 |
MarginY | 边距Y | int | 24 |
Gap 🔴 | 间距 | int | 40 |
Btns | 按钮列表 |
| |
Call | 点击回调 | Action |
|
FloatButton.Config(Form form, ConfigBtn[] btns, Action<ConfigBtn> call){
Font = new Font("Microsoft YaHei UI", 9F, FontStyle.Regular, GraphicsUnit.Point),
//附着控件
Control = null,
Align = TAlign.RB,
//....其他属性
};
该方法说明配置悬浮按钮,需要提供至少三个参数,form窗体、btns配置按钮、call回调函数,通过调用回调函数处理所需的点击后的操作。其他属性可以根据需要进行配置。
FloatButton.ConfigBtn
该按钮用于设置每一个悬浮按钮所呈现的属性,例如按钮图标、形状、文本等等。
名称 | 描述 | 类型 | 默认值 |
Name | 名称 | string |
|
Text | 文本 | string |
|
Fore 🔴 | 文字颜色 | Color |
|
Tooltip | 气泡的内容 | string |
|
Round 🔴 | 圆角样式 | bool | true |
Type | 类型 | Default | |
Radius | 圆角 | int | 6 |
Icon | 自定义图标 | Image |
|
IconSvg | 自定义图标SVG | string |
|
IconSize 🔴 | 图标大小 | Size | 0 × 0 |
Badge | 徽标文本 | string |
|
BadgeSize | 徽标字体大小 | float | 9F |
BadgeBack | 徽标背景颜色 | Color |
|
ConfigBtn提供了三个构造函数,其中name表示按钮的唯一标识符名称,text表示按钮的文本内容、icon表示按钮上的图标,isSVG设置为true,text参数会赋值给IconSvg,否则赋值给Text。
public ConfigBtn(string name)
public ConfigBtn(string name, Bitmap icon)
public ConfigBtn(string name, string text, bool isSVG = false)
如下代码进行创建悬浮按钮:
new FloatButton.ConfigBtn[] {
new FloatButton.ConfigBtn("button1", "", true)
{
// isSvg设置为true,text参数会赋值给IconSvg,否则赋值给Text,所以需要单独设置Text
Text = "SVG Picture",
IconSvg = "ExclamationCircleOutlined",
Tooltip = "SVG Button",
// ....其他属性
},
new FloatButton.ConfigBtn("button2")
{
Text = "Button",
Tooltip = "Resource Picture Button",
},
new FloatButton.ConfigBtn("button2", Properties.Resources.关闭)
{
Text = "Resource Picture",
Tooltip = "Resource Picture Button",
}
}
创建悬浮按钮:
FormFloatButton
用于存储浮动按钮窗体的实例;
new FloatButton.ConfigBtn[] { ... }
:按钮配置数组,定义浮动按钮的内容;
button => { ... }
:按钮点击事件回调函数;
private FormFloatButton floatButtonForm = null;
private void LoadFloatButton()
{
if (floatButtonForm == null)
{
// 创建并打开悬浮按钮
floatButtonForm = FloatButton.open(new FloatButton.Config(this, new FloatButton.ConfigBtn[] {
new FloatButton.ConfigBtn("button1", "", true)
{
// isSvg设置为true,text参数会赋值给IconSvg,否则赋值给Text,所以需要单独设置Text
Text = "SVG Picture",
IconSvg = "ExclamationCircleOutlined",
Tooltip = "SVG Button",
},
new FloatButton.ConfigBtn("button2")
{
Text = "Btn",
Tooltip = "Resource Picture Button",
},
}, button =>
{
//回调事件
AntdUI.Message.info(this, "Text:" + button.Text + ", Name:" + button.Name, autoClose: 3);
})
// 浮动全局配置
{
//字体
Font = new Font("Microsoft YaHei UI", 9F, FontStyle.Regular, GraphicsUnit.Point),
//附着控件
Control = null,
// 按钮显示位置:右下方向
Align = TAlign.RB,
//是否垂直方向
Vertical = true,
//是否置顶
TopMost = false,
//尺寸大小
Size = 30,
//相对于Align位置X轴偏移
MarginX = 20,
//相对于Align位置Y轴偏移
MarginY = 20,
//按钮间距
Gap = 20,
});
}
}
public void CloseFloatButtonForm()
{
if (InvokeRequired)
{
Invoke(new Action(CloseFloatButtonForm));
}
else
{
if (floatButtonForm != null)
{
floatButtonForm.Close();
floatButtonForm.Dispose();
floatButtonForm = null;
}
}
}