前言: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}%");
}
};
注意事项
- 电量范围:Value 应该在 0 到 100 之间
- 自动颜色:Fill、FillWarn、FillDanger 为 null 时使用默认颜色
- 尺寸建议:横向时宽度应大于高度,纵向时高度应大于宽度
- 圆角半径:CornerRadius 为 0 时为直角
三、后记
陆续补充完善中,如有需求,请留言(xue5zhijing)