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");
注意事项
- 纵向布局:纵向布局时中文竖排,英文旋转90度
- 超链接:IsLink 为 true 时文本显示为链接样式,点击可触发 LinkClicked 事件
- 旋转角度:Angle 支持任意角度,但旋转后可能需要调整控件大小
- 跑马灯:MarqueeEnabled 为 true 时文本会自动滚动显示
- 边框粗细:BorderThickness 可设置为 0 来完全隐藏边框(ShowBorder 仍为 true 时)
- 主题适配:暗色模式下只有文本颜色为黑色或接近黑色时才会自动变为白色,用户自定义的非黑色文本颜色会被保留不变
更新日志
2026-04-18
BorderThickness 现在支持设置为 0,可完全隐藏边框
初始版本
- 支持横向/纵向布局
- 支持超链接和点击事件
- 支持任意角度旋转
- 支持跑马灯效果
- 支持边框显示