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

相关推荐
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·游戏引擎
skilllite作者2 天前
UI-TARS-Desktop 智能桌面自动化实战指南
ui·自动化·策略模式
梦想的颜色2 天前
前端UI宝藏SKILL——UI/UX Pro Max
前端·ui·ux