LabelEx 标签控件

LabelEx 是一个功能丰富的标签控件,支持横向/纵向布局、超链接、任意旋转角度、跑马灯等功能。适用于文本显示、链接跳转、动态文本等场景。

LabelEx 标签控件

控件名称

LabelEx

中文名称

标签控件

控件优点

LabelEx 是一个功能丰富的标签控件,支持横向/纵向布局、超链接、任意旋转角度、跑马灯等功能。适用于文本显示、链接跳转、动态文本等场景。

主要特性

  • 双向布局:支持横向和纵向文本布局
  • 超链接:支持超链接样式和点击跳转
  • 任意旋转:支持任意角度旋转文本
  • 跑马灯:支持滚动显示文本
  • 边框显示:支持显示边框
  • 自动换行:支持文本自动换行

重要参数说明

基本属性

属性名 类型 默认值 说明
Text string "Label" 显示文本
Orientation LabelOrientation Horizontal 布局方向
IsLink bool false 是否为超链接
LinkUrl string "" 链接地址
Angle float 0f 旋转角度

布局方向(LabelOrientation)

方向值 说明
Horizontal 横向排列(默认)
Vertical 纵向排列(中文竖排,英文旋转90度)

跑马灯属性

属性名 类型 默认值 说明
MarqueeEnabled bool false 是否启用跑马灯
MarqueeDirection MarqueeDirection Horizontal 滚动方向
MarqueeMode MarqueeMode Loop 滚动模式
MarqueeSpeed int 50 滚动速度(毫秒)

跑马灯方向(MarqueeDirection)

方向值 说明
Horizontal 水平滚动(从右向左)
Vertical 垂直滚动(从下向上)

跑马灯模式(MarqueeMode)

模式值 说明
Loop 单向循环(文本结束后从头开始)
Bounce 来回滚动(到达边界后反向)

边框属性

属性名 类型 默认值 说明
ShowBorder bool false 是否显示边框
BorderColor Color Gray 边框颜色
BorderThickness int 1 边框粗细(可设置为0隐藏边框)

超链接属性

属性名 类型 默认值 说明
LinkColor Color 24, 144, 255 链接颜色
LinkHoverColor Color Blue 链接悬停颜色

文本属性

属性名 类型 默认值 说明
ForeColor Color Black 文本颜色
Font Font 微软雅黑 字体
TextAlign ContentAlignment MiddleCenter 文本对齐方式
AutoEllipsis bool false 是否显示省略号
AutoSize bool false 是否自动调整大小

主题支持

属性名 类型 默认值 说明
FollowGlobalTheme bool true 是否跟随全局主题变化

透明背景说明:

LabelEx 支持透明背景 (BackColor = Color.Transparent),当设置为透明时,控件会自动查找父容器的背景色并绘制,确保在任何容器上都能正确显示背景。

注意事项:

  • BackColor 设置为 Color.Transparent 时,LabelEx 会自动递归查找第一个非透明的父容器背景色
  • 适用于放置在 LayoutEx、ExplorerBar 等容器中的场景
  • 切换主题时,透明背景的 LabelEx 会自动更新为新的父容器背景色

重要事件

事件名 说明
LinkClicked 点击超链接时触发
PropertyChanged 属性值改变时触发

使用示例

基本使用

// 创建标签
LabelEx label = new LabelEx();
label.Text = "Hello World";
label.Size = new Size(200, 30);
this.Controls.Add(label);

纵向布局

// 纵向排列
label.Orientation = LabelOrientation.Vertical;
label.Size = new Size(30, 200);

超链接

// 创建超链接
LabelEx linkLabel = new LabelEx();
linkLabel.Text = "点击访问";
linkLabel.IsLink = true;
linkLabel.LinkUrl = "https://www.example.com";

// 点击事件
linkLabel.LinkClicked += (sender, e) =>
{
    Console.WriteLine($"点击了链接:{e.LinkUrl}");
};

旋转文本

// 旋转45度
label.Angle = 45f;

// 旋转90度
label.Angle = 90f;

跑马灯

// 启用跑马灯
label.MarqueeEnabled = true;
label.MarqueeDirection = MarqueeDirection.Horizontal;
label.MarqueeMode = MarqueeMode.Loop;
label.MarqueeSpeed = 50;

边框显示

// 显示边框
label.ShowBorder = true;
label.BorderColor = Color.Gray;
label.BorderThickness = 1;

颜色自定义

// 设置颜色
label.ForeColor = Color.DarkBlue;
label.LinkColor = Color.Blue;
label.LinkHoverColor = Color.DarkBlue;

数据绑定

// 属性改变事件
label.PropertyChanged += (sender, e) =>
{
    Console.WriteLine($"属性 {e.PropertyName} 已更改");
};

// 绑定到数据源
label.DataBindings.Add("Text", dataSource, "DisplayText");

注意事项

  1. 纵向布局:纵向布局时中文竖排,英文旋转90度
  2. 超链接:IsLink 为 true 时文本显示为链接样式,点击可触发 LinkClicked 事件
  3. 旋转角度:Angle 支持任意角度,但旋转后可能需要调整控件大小
  4. 跑马灯:MarqueeEnabled 为 true 时文本会自动滚动显示
  5. 边框粗细:BorderThickness 可设置为 0 来完全隐藏边框(ShowBorder 仍为 true 时)
  6. 主题适配:暗色模式下只有文本颜色为黑色或接近黑色时才会自动变为白色,用户自定义的非黑色文本颜色会被保留不变

更新日志

2026-04-18

  • BorderThickness 现在支持设置为 0,可完全隐藏边框

初始版本

  • 支持横向/纵向布局
  • 支持超链接和点击事件
  • 支持任意角度旋转
  • 支持跑马灯效果
  • 支持边框显示