You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C# WinForms动态创建Guna2Button文本水平左对齐失效如何解决?

问题场景

开发C# WinForms应用时,动态生成Guna.UI2按钮后,设置文本左对齐不生效,已尝试原生TextAlign属性配置无效,实际效果如下:
按钮效果截图

已尝试的无效配置代码:

iBtn.TextAlign = Left; 
iBtn.TextAlign = ContentAlignment.MiddleLeft;

完整业务代码如下:

private void dynBtnClick(string btnText)  //Dynamic Text List In flp2
{
    string[] listData = File.ReadAllLines(filePath + @"\" + btnText + ".txt");
    
    int e=listData.Count();


    flp2.FlowDirection = FlowDirection.LeftToRight;

    flp2.Controls.Clear();
    for ( int j =0; j<e;j++)
    {
      
        Guna.UI2.WinForms.Guna2Button iBtn = new Guna.UI2.WinForms.Guna2Button();

        iBtn.Tag = j;
        iBtn.BorderRadius = 5;
        iBtn.Height = 25;
        iBtn.Width = 200;
        iBtn.AutoSize = false;
        iBtn.Animated = true;
        iBtn.FillColor = ColorTranslator.FromHtml("#263238");

        iBtn.TextAlign = ContentAlignment.MiddleLeft;

        string[] btnFacetext = listData[j].Split('~');
        iBtn.Text = btnFacetext[0].ToString();

      
        iBtn.Click += (s, c) => { flp2Action(btnFacetext[0]+"~"+ btnFacetext[1], btnText); };
        flp2.Controls.Add(iBtn);
    }
}

解决方案

Guna.UI2库的自定义按钮布局逻辑和原生WinForms按钮不同,仅设置TextAlign无法生效,按以下步骤修改即可:

  1. 先排除文本本身带前置空白的问题,给文本加Trim()处理
  2. 显式修改按钮默认的左右内边距,替换默认的内置留白
  3. 搭配设置TextOffset属性清除默认的文本偏移

修改后的核心代码片段:

Guna.UI2.WinForms.Guna2Button iBtn = new Guna.UI2.WinForms.Guna2Button();

iBtn.Tag = j;
iBtn.BorderRadius = 5;
iBtn.Height = 25;
iBtn.Width = 200;
iBtn.AutoSize = false;
iBtn.Animated = true;
iBtn.FillColor = ColorTranslator.FromHtml("#263238");

// 新增对齐相关配置
iBtn.TextAlign = ContentAlignment.MiddleLeft;
iBtn.Padding = new Padding(3, 0, 0, 0); // 左侧留3px避免文本贴边,右侧无额外留白
iBtn.TextOffset = new Point(0, 0); // 清除Guna2按钮默认的文本偏移量

string[] btnFacetext = listData[j].Split('~');
iBtn.Text = btnFacetext[0].Trim(); // 去除文本首尾空白字符

iBtn.Click += (s, c) => { flp2Action(btnFacetext[0]+"~"+ btnFacetext[1], btnText); };
flp2.Controls.Add(iBtn);

如果以上配置仍不生效,可额外添加文本格式化配置:

iBtn.TextFormatFlags = TextFormatFlags.Left | TextFormatFlags.VerticalCenter;

内容的提问来源于stack exchange,提问作者Data Dynamic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 20:18:03