【WinForm UI控件系列】AlarmLight 报警灯\声光报警灯控件

前言: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} 已更改");
};

注意事项

  1. 方向选择:不同方向需要调整控件尺寸以保证显示效果
  2. 闪烁动画:IsBlinking 为 true 时会自动播放三色旋转动画
  3. 声音指示:ShowSoundIndicator 为 true 时会显示声音波纹效果
  4. 尺寸建议:建议高度大于宽度,以保证报警灯效果
  5. 透明背景:控件默认使用透明背景,可与带背景色的容器完美融合

三、后记

陆续补充完善中,如有需求,请留言(xue5zhijing)

相关推荐
条tiao条6 小时前
Navigation页面跳转教学博客
ui·华为·harmonyos·鸿蒙·页面跳转
এ慕ོ冬℘゜9 小时前
前端实战:Textarea 实时字数计数输入器(带字数限制+UI优化完整源码)
前端·ui
todoitbo14 小时前
让数据看板随时可见:Grafana + cpolar 远程访问实战
ui·网络安全·grafana·数据看板·远程访问
Liknana14 小时前
Qt 圆角表格控件实战:setMask + 抗锯齿描边 + 多层阴影
qt·ui
天天进步201514 小时前
UI-TARS 源码解析 #7:Thought + Action 输出格式:GUI Agent 的最小决策闭环
ui
曹牧2 天前
C#:关闭UI,清理线程
开发语言·ui·c#
春卷同学2 天前
HarmonyOS掌上记账APP开发实践第29篇:条件渲染与 ForEach — 动态 UI 的构建策略
ui·华为·harmonyos
小小测试开发2 天前
Midscene.js:14K Stars 视驱 UI 自动化框架,用截图替代 DOM 选择器写测试
javascript·ui·自动化
不吃辣4902 天前
从0-1学习导航页面布局优化和搭建
ui·平面·前端框架
大师兄66682 天前
HarmonyOS7 状态驱动 UI 原理:为什么改了数据视图就变
ui·arkui·实战案例·harmonyos7