using AntdUI; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace AntdUIDemo.Views { public partial class FloatButtonDemo : UserControl { private Form form; public Form floatButtonForm = null; public FloatButtonDemo(Form _form) { form = _form; InitializeComponent(); //初始化下拉框 InitSelectItems(); //设置默认值 SetDefaultSelectItem(); // 加载浮动按钮 LoadBaseFloatButton(); } private void InitSelectItems() { //初始化方向 select_align.Items.Clear(); foreach (TAlign align in Enum.GetValues(typeof(TAlign))) { select_align.Items.Add(align); } //初始化形状 select_shape.Items.Clear(); foreach (TShape shape in Enum.GetValues(typeof(TShape))) { select_shape.Items.Add(shape); } //初始化类型 select_type.Items.Clear(); foreach (TTypeMini type in Enum.GetValues(typeof(TTypeMini))) { select_type.Items.Add(type); } } private void SetDefaultSelectItem() { select_align.SelectedIndex = 7; select_shape.SelectedIndex = 0; select_type.SelectedIndex = 0; select_topmost.SelectedIndex = 1; select_vertical.SelectedIndex = 0; input_size.Text = "40"; input_mx.Text = "24"; input_my.Text = "24"; input_radius.Text = "6"; input_badge.Text = ""; input_badgesize.Text = "6"; colorPicker.Value = Color.FromArgb(22, 119, 255); } private void LoadBaseFloatButton() { if (floatButtonForm == null || floatButtonForm.IsDisposed) { var buttonType = TTypeMini.Default; switch (select_type.SelectedIndex) { case 0: buttonType = TTypeMini.Default; break; case 1: buttonType = TTypeMini.Primary; break; case 2: buttonType = TTypeMini.Success; break; case 3: buttonType = TTypeMini.Error; break; case 4: buttonType = TTypeMini.Warn; break; case 5: buttonType = TTypeMini.Info; break; } floatButtonForm = AntdUI.FloatButton.open(new AntdUI.FloatButton.Config(form, new AntdUI.FloatButton.ConfigBtn[] { // 使用 svg 图片 new AntdUI.FloatButton.ConfigBtn("按钮1","",true) { Tooltip = "SVG图片按钮", IconSvg = "", Shape = select_shape.SelectedIndex == 0 ? TShape.Default :(select_shape.SelectedIndex == 1 ? TShape.Round : TShape.Circle), Type = buttonType, Radius = input_radius.Text == "" ? 6 : Convert.ToInt32(input_radius.Text), Badge = input_badge.Text, BadgeSize = input_badgesize.Text == "" ? 6 : Convert.ToInt32(input_badgesize.Text), BadgeBack = colorPicker.Value, }, // 使用资源图片 new AntdUI.FloatButton.ConfigBtn("按钮2", Properties.Resources.关闭) { Tooltip = "资源图片按钮", Shape = select_shape.SelectedIndex == 0 ? TShape.Default :(select_shape.SelectedIndex == 1 ? TShape.Round : TShape.Circle), Type = buttonType, Radius = input_radius.Text == "" ? 6 : Convert.ToInt32(input_radius.Text), Badge = input_badge.Text, BadgeSize = input_badgesize.Text == "" ? 6 : Convert.ToInt32(input_badgesize.Text), BadgeBack = colorPicker.Value, }, new AntdUI.FloatButton.ConfigBtn("按钮3", "关闭") { Tooltip = "文本按钮", Shape = select_shape.SelectedIndex == 0 ? TShape.Default :(select_shape.SelectedIndex == 1 ? TShape.Round : TShape.Circle), Type = buttonType, Radius = input_radius.Text == "" ? 6 : Convert.ToInt32(input_radius.Text), Badge = input_badge.Text, BadgeSize = input_badgesize.Text == "" ? 6 : Convert.ToInt32(input_badgesize.Text), BadgeBack = colorPicker.Value, }, }, btn => { //回调事件 }) { // 配置 Font = new Font("Microsoft JhengHei UI", 9F, FontStyle.Regular, GraphicsUnit.Point), Control = null, Align = (TAlign)select_align.SelectedIndex, Vertical = select_vertical.SelectedIndex == 0, TopMost = select_topmost.SelectedIndex == 0, Size = input_size.Text == "" ? 40 : Convert.ToInt32(input_size.Text), MarginX = input_mx.Text == "" ? 24 : Convert.ToInt32(input_mx.Text), MarginY = input_my.Text == "" ? 24 : Convert.ToInt32(input_my.Text), }); } } // 添加清理逻辑 public void CloseFloatButtonForm() { if (floatButtonForm != null) { floatButtonForm?.Close(); floatButtonForm?.Dispose(); floatButtonForm = null; } } private void buttonCZ_Click(object sender, EventArgs e) { SetDefaultSelectItem(); } private void buttonOpen_Click(object sender, EventArgs e) { CloseFloatButtonForm(); LoadBaseFloatButton(); } private void buttonClose_Click(object sender, EventArgs e) { CloseFloatButtonForm(); } } }