winform基于antdui中FloatButton悬浮按钮的使用

官方gitee:doc/wiki/zh/Control/FloatButton.md · AntdUI/AntdUI - Gitee.com

FloatButton悬浮按钮并没有直接提供该控件,而是通过动态配置模式实现高度灵活性。需要利用 FloatButton.ConfigConfigBtn 定制悬浮按钮组

什么是 FloatButton?悬浮按钮是一种固定在屏幕角落的圆形按钮集合,点击后展开多个子按钮,如“发布内容”、“快捷导航”等。

FloatButton.Config

FloatButton.Config 是悬浮按钮的全局配置对象,控制按钮组的位置、样式、交互等核心属性。

名称

描述

类型

默认值

Form

所属窗口

Form

必填

Font

字体

Font?

Control

所属控件

Control?

Align

方向

TAlign

BR

Vertical

是否垂直方向

bool

true

TopMost

是否置顶

bool

false

Size

大小

int

40

MarginX

边距X

int

24

MarginY

边距Y

int

24

Gap 🔴

间距

int

40

Btns

按钮列表

ConfigBtn[]

必填

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

null

Text

文本

string?

null

Fore 🔴

文字颜色

Color?

null

Tooltip

气泡的内容

string?

null

Round 🔴

圆角样式

bool

true

Type

类型

TTypeMini

Default

Radius

圆角

int

6

Icon

自定义图标

Image?

null

IconSvg

自定义图标SVG

string?

null

IconSize 🔴

图标大小 不设置为自动大小

Size

0 × 0

Badge

徽标文本

string?

null

BadgeSize

徽标字体大小

float

9F

BadgeBack

徽标背景颜色

Color?

null

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;
        }
    }
}

### 集成和使用 AntdUI 组件及样式于 WinForms #### 选择合适的库 对于希望在 Windows Forms (WinForms) 应用程序中引入类似于 Ant Design 的 UI 样式的开发者来说,直接使用原生 JavaScript 或 React 版本的 Ant Design 是不可行的。然而,可以考虑采用 C# 社区开发的一些第三方库来实现相似的效果[^1]。 #### 使用 HZHControls 实现类似效果 虽然没有专门针对 WinForms 的官方 AntdUI 支持,但是可以通过其他途径获得类似的用户体验。例如,HZHControls 提供了一套丰富的、可高度定制化的控件集,这些控件的设计理念接近现代 Web 设计风格,包括卡片布局、表格以及各种输入框等,能够很好地满足应用美观性和功能性的需求。 ```csharp // 安装 HZHControls NuGet 包 Install-Package HZH_Controls using System; using System.Windows.Forms; namespace MyApplication { public partial class MainForm : Form { private void InitializeCustomComponents() { // 创建并配置自定义按钮实例 var customButton = new HZH_Controls.Controls.UCBtnExt(); customButton.Text = "Click Me"; customButton.Location = new Point(50, 50); this.Controls.Add(customButton); // 设置主题颜色以匹配 Ant Design 调色板 ThemeConfig.ThemeColor = Color.FromArgb(24, 144, 255); // 主色调 // 更多设置... } protected override void OnLoad(EventArgs e) { base.OnLoad(e); InitializeCustomComponents(); } } } ``` 通过上述方法可以在一定程度上模仿 Ant Design 的外观特性;不过需要注意的是,这并不是真正意义上的 AntdUI 移植版本,而是利用现有资源尽可能贴近目标设计模式的一种解决方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值