【WinForm UI控件系列】Battery 电池电量控件

前言:c# winform UI控件系列,做不到最好用,但愿是更好用!

一、效果图

二、使用说明文档

Battery 电池电量控件

控件名称

Battery

中文名称

电池电量控件

控件优点

Battery 是一个简洁美观的电池电量显示控件,支持横向和纵向显示、自动颜色切换、百分比文本显示等功能。适用于电池状态显示、电量监控等场景。

主要特性

  • 双向显示:支持横向和纵向两种显示方向
  • 自动颜色:根据电量自动切换颜色(正常/警告/危险)
  • 圆角设计:支持自定义圆角半径
  • 文本显示:支持显示电量百分比
  • 数据绑定:实现 INotifyPropertyChanged 接口

重要参数说明

基本属性

属性名 类型 默认值 说明
Value int 60 电量值(0-100)
Vertical bool false 是否纵向显示
ShowText bool true 是否显示文本
BorderThickness int 2 边框粗细
CornerRadius int 6 圆角半径
FillPadding int 2 填充区域与外边框的间隙

颜色属性

属性名 类型 默认值 说明
Fill Color? null 正常填充色(>40%,默认绿色)
FillWarn Color? null 警告填充色(20-40%,默认黄色)
FillDanger Color? null 危险填充色(<20%,默认红色)
BorderColor Color 200, 200, 200 边框颜色
BackColor Color White 背景色

重要事件

事件名 说明
PropertyChanged 属性值改变时触发

使用示例

基本使用

csharp 复制代码
// 创建电池控件
Battery battery = new Battery();
battery.Size = new Size(70, 40);
battery.Value = 75;
this.Controls.Add(battery);

纵向显示

csharp 复制代码
// 纵向电池
battery.Vertical = true;
battery.Size = new Size(40, 70);

颜色自定义

csharp 复制代码
// 自定义颜色
battery.Fill = Color.Green;           // 正常
battery.FillWarn = Color.Orange;      // 警告
battery.FillDanger = Color.Red;       // 危险
battery.BorderColor = Color.Gray;
battery.BackColor = Color.White;

隐藏文本

csharp 复制代码
battery.ShowText = false;  // 只显示电池图形,不显示百分比

动态更新电量

csharp 复制代码
// 模拟电量消耗
Timer timer = new Timer();
timer.Interval = 1000;

timer.Tick += (s, e) =>
{
    battery.Value = Math.Max(0, battery.Value - 1);
};

timer.Start();

数据绑定

csharp 复制代码
// 属性改变事件
battery.PropertyChanged += (sender, e) =>
{
    if (e.PropertyName == nameof(Battery.Value))
    {
        Console.WriteLine($"电量已更新:{battery.Value}%");
    }
};

注意事项

  1. 电量范围:Value 应该在 0 到 100 之间
  2. 自动颜色:Fill、FillWarn、FillDanger 为 null 时使用默认颜色
  3. 尺寸建议:横向时宽度应大于高度,纵向时高度应大于宽度
  4. 圆角半径:CornerRadius 为 0 时为直角

三、后记

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

相关推荐
xy34532 天前
Axure 9.0 中继器创建与设置步骤
前端·ui·html·axure·原型·产品设计
大蓝头2 天前
安装包UI美化之路-借助AI快速使用nsNiuniuSkin制作安装包
ui·安装包·nsis·安装包美化·nsniuniuskin
兰亭妙微UI设计公司3 天前
兰亭妙微APP界面设计公司分享: iPhone Duo 登场|3 大核心要点,拆解折叠屏 UI 适配设计思路
ui·交互
智购科技自动售货机工厂3 天前
2026自动售货机端侧AI降本逻辑:从云端API到本地推理的成本重构~YH
人工智能·python·ui·面试·交互
HwJack204 天前
【HarmonyOS开发小实践】ArkUI 应用级状态AppStorage 与跨页面共享、持久化
ui·华为·性能优化·harmonyos
undsky_4 天前
传统色 × 现代和弦:专为 UI/UX 打造的国风配色 Skill
ui·ai·aigc·ai编程·ux
Wang's Blog6 天前
Java框架快速入门: Spring Security+OAuth2之多因子认证与TOTP实战
java·spring·ui
Huanzhi_Lin6 天前
UI业务模块化随笔
ui·mvc·mvp·ecs·ui框架·模块化开发
Quor6 天前
Zorv AI GenUI 技术架构深度解析:从双面设计到安全边界
人工智能·ui·架构