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

相关推荐
ZC跨境爬虫12 小时前
跟着MDN学HTML_day_48:(Node接口)
前端·javascript·ui·html·音视频
为何创造硅基生物13 小时前
嵌入式 LVGL / SquareLine UI 标准命名规则(行业通用版)
windows·ui
AITOP10021 小时前
高德联合千问开源AGenUI:让Agent UI同时跑在iOS、安卓和鸿蒙上
ui·ios·开源
UXbot1 天前
AI原型设计工具如何从PRD自动生成交互原型
前端·低代码·ui·交互·ai编程·原型模式
十五年专注C++开发1 天前
QFluentKit: 一个基于 Qt Widgets 的 Fluent Design 风格 UI 组件库
开发语言·c++·qt·ui·qfluentkit
ZC跨境爬虫1 天前
跟着MDN学HTML_day_47:(Document接口)
前端·javascript·ui·html·ecmascript·音视频
Ulyanov1 天前
《从质点到位姿:基于Python与PyVista的导弹制导控制全栈仿真》: 基石——3-DOF质点弹道的高保真建模与数值稳定性分析
开发语言·python·算法·ui·系统仿真
ZC跨境爬虫1 天前
跟着MDN学HTML_day_49:(ShadowRoot接口)
前端·javascript·ui·html·ecmascript·媒体
UXbot2 天前
一人独立交付 UI + 前端:AI 驱动 UI 设计工具的五大功能模块深度评测
前端·低代码·ui·设计模式·交互
垂葛酒肝汤2 天前
Unity的UI扫光效果Shader
ui·unity·游戏引擎