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

相关推荐
FungLeo1 天前
Flutter 把第三方 UI 库渐进迁回 Material 3:组件映射总表 + 四批次替换实战
flutter·ui
鹤卿1231 天前
「iOS」天气预报仿写总结
ui·ios·objective-c
A24207349301 天前
Vue + TypeScript 请求数据后结合 Element UI 实现树形菜单与下拉选择
vue.js·ui·typescript
头茬韭菜1 天前
5.5 权限交互:渐进式信任的 UI 设计
ui·交互
imperialeast2 天前
WinAXP音乐播放器8月4日更新
windows·算法·ui
天天进步20154 天前
UI-TARS 源码解析 #14:parse_action_to_structure_output:从 Thought/Action 文本到动作字典
ui
_ZHOURUI_H_4 天前
Unity MyFramework 用法说明(二十五):使用 AtlasManager 统一管理图集与 Sprite 引用
ui·unity·游戏引擎·unity3d·游戏开发
不如摸鱼去4 天前
Wot UI 2.3.0 发布:二维码组件来了,Open Wot 与 wot-starter 同步更新
前端·ui·微信小程序·前端框架·uni-app
测试开发技术6 天前
AI 测试提效 | 告别手工写脚本,分享我的 Playwright + Skill 批量生成 UI 自动化脚本方案
自动化测试·人工智能·ui·自动化·agent·skill·ai测试
吾儿良辰6 天前
Flutter 迎来重大变革:Material 设计系统拆分,迈向更开放的 UI 框架
javascript·flutter·ui