【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)

相关推荐
laowangpython10 天前
Photoshop 2025 下载安装全攻略
其他·ui·photoshop
风华圆舞10 天前
Flutter + 鸿蒙 Intents Kit:页面直达能力的完整接入方案
flutter·ui·华为·harmonyos
鲲穹AI超级员工10 天前
多款实用配色工具汇总,适配设计、UI 创作等多元场景
ui·色彩设计
UXbot10 天前
帮助企业低门槛开展AI应用开发的平台推荐
前端·低代码·ui·交互·产品经理·原型模式·web app
烂白菜10 天前
智码美形:华为云码道 × UI-UX-Pro-Max 高品质界面智能生成实践
ui·华为云·ux
像风一样的男人@10 天前
python --实现代理服务器
git·ui
风华圆舞10 天前
鸿蒙 Flutter 页面怎么感知防窥状态并调整 UI 可见性
flutter·ui·harmonyos
UXbot11 天前
如何选择适合公司项目的UI设计工具?企业选型指南
前端·低代码·ui·团队开发·原型模式·设计规范·web app
UXbot11 天前
原型设计工具如何帮助新人快速进入产品行业?
前端·低代码·ui·交互·团队开发·原型模式·web app
烈焰晴天11 天前
Codex 桌面端如何链接Figma MCP 服务器拿到 Figma设计稿精准尺寸等结构化数据 来精准还原UI
服务器·ui·figma