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

相关推荐
我命由我1234514 小时前
UI 设计 7 种排列方式
xml·学习·ui·html·产品运营·产品经理·学习方法
BW.SU21 小时前
RUI Studio--嵌入式 UI 开发新范式
单片机·ui·嵌入式开发
skr爱码士1 天前
10_Qt Designer 与 UI 文件(.ui 原理、uic 编译、动态加载)
c++·qt·ui·客户端
Behaviour2 天前
Unity UI循环列表UIScrollViewContent实现
ui·unity·c#·游戏引擎
小小龙学IT2 天前
Dear ImGui 开源即时模式 GUI 库深度解析
c++·ui·开源
xy34532 天前
Axure9.0让条形图实现动态交互(鼠标悬停高亮 + 显示详情卡片)
ui·产品经理·原型·axure9.0
mqiqe3 天前
AgentScope Java 2.0 协议集成全景解析:A2A、AG-UI、Agent Protocol 三大开放协议实战指南
java·开发语言·ui
qq_426003963 天前
【UI自动化测试】UI自动化报错解决方案
运维·ui·自动化
Oll Correct3 天前
Adobe illustrator 案例九:百宝箱图标绘制
笔记·ui·adobe·illustrator
xy34533 天前
Axure 9.0 条形图绘制超详细教程:静态展示
ui·产品经理·axure·条形图