前言:c# winform UI控件系列,做不到最好用,但愿是更好用!
一、效果图






二、使用说明
AlarmLight 报警灯控件
控件名称
AlarmLight
中文名称
报警灯控件
控件优点
AlarmLight 是一个专业的报警灯控件,支持三色切换、闪烁动画、声音指示等功能。适用于工业控制、状态提示、警报系统等场景。
主要特性
- 三色显示:支持红、黄、绿三色报警灯
- 方向控制:支持四种方向显示
- 闪烁动画:支持报警灯闪烁效果
- 声音指示:支持显示声音指示图标
- 高光效果:支持显示光源高光效果
- 透明背景:支持透明背景,可与各种背景色容器配合使用
重要参数说明
基本属性
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
Direction |
LightDirection | Up | 报警灯方向 |
ShowSoundIndicator |
bool | false | 是否显示声音指示 |
ShowHighlight |
bool | false | 是否显示光源高光 |
IsBlinking |
bool | false | 是否闪烁 |
BackColor |
Color | Transparent | 背景颜色(默认透明) |
报警灯方向(LightDirection)
| 方向值 | 说明 |
|---|---|
Up |
朝上(底座在下) |
Down |
朝下(底座在上) |
Left |
朝左(底座在右) |
Right |
朝右(底座在左) |
颜色属性
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
LightColor1 |
Color | 220, 50, 50 | 第一色(红色) |
LightColor2 |
Color | 255, 200, 0 | 第二色(黄色) |
LightColor3 |
Color | 50, 180, 50 | 第三色(绿色) |
BaseColor |
Color | 100, 100, 100 | 底座颜色 |
声音指示属性
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
SoundLines |
int | 3 | 声音指示线数量(1-5) |
SoundLineSpace |
int | 12 | 声音线长度 |
SoundLineWidth |
int | 2 | 声音线粗细(1-10) |
动画属性
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
RotationSpeed |
int | 10 | 旋转速度(每帧增加的角度) |
重要事件
| 事件名 | 说明 |
|---|---|
PropertyChanged |
属性值改变时触发(实现 INotifyPropertyChanged 接口) |
使用示例
基本使用
csharp
// 创建报警灯
AlarmLight alarmLight = new AlarmLight();
alarmLight.Size = new Size(60, 80);
this.Controls.Add(alarmLight);
透明背景
csharp
// 默认即为透明背景
AlarmLight alarmLight = new AlarmLight();
// 或在代码中显式设置透明背景
alarmLight.BackColor = Color.Transparent;
// 设置有色背景
alarmLight.BackColor = Color.White;
不同方向
csharp
// 朝上(默认)
alarmLight1.Direction = LightDirection.Up;
// 朝下
alarmLight2.Direction = LightDirection.Down;
// 朝左
alarmLight3.Direction = LightDirection.Left;
// 朝右
alarmLight4.Direction = LightDirection.Right;
颜色自定义
csharp
// 设置三色灯颜色
alarmLight.LightColor1 = Color.Red; // 红色
alarmLight.LightColor2 = Color.Yellow; // 黄色
alarmLight.LightColor3 = Color.Green; // 绿色
// 设置底座颜色
alarmLight.BaseColor = Color.Gray;
闪烁效果
csharp
// 启用闪烁
alarmLight.IsBlinking = true;
// 调整旋转速度(默认10)
alarmLight.RotationSpeed = 15;
// 停止闪烁
alarmLight.IsBlinking = false;
声音指示
csharp
// 显示声音指示
alarmLight.ShowSoundIndicator = true;
alarmLight.SoundLines = 3;
alarmLight.SoundLineSpace = 12;
alarmLight.SoundLineWidth = 2; // 线条粗细
高光效果
csharp
// 显示光源高光
alarmLight.ShowHighlight = true;
数据绑定
csharp
// 属性改变事件
alarmLight.PropertyChanged += (sender, e) =>
{
Console.WriteLine($"属性 {e.PropertyName} 已更改");
};
注意事项
- 方向选择:不同方向需要调整控件尺寸以保证显示效果
- 闪烁动画:IsBlinking 为 true 时会自动播放三色旋转动画
- 声音指示:ShowSoundIndicator 为 true 时会显示声音波纹效果
- 尺寸建议:建议高度大于宽度,以保证报警灯效果
- 透明背景:控件默认使用透明背景,可与带背景色的容器完美融合
三、后记
陆续补充完善中,如有需求,请留言(xue5zhijing)