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

相关推荐
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