You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Visual Studio中基于CircularProgressBar实现半圆形进度条

半圆形进度条实现方案

基于现有CircularProgressBar包的无源码改造方法

  • 给CircularProgressBar控件外层套一个和进度条同宽、高度为进度条一半的容器(WPF用Grid/Border、Winform用Panel均可),将容器的ClipToBounds(WPF)或Clip(Winform)属性设为裁剪掉下半部分区域,无需修改包源码即可隐藏圆形进度条的下半部分,直接得到半圆形的视觉效果
  • 调整进度条起始角度配置:将默认起始角度修改为180°(左侧水平位置),设置进度满值对应扫过角度为180°,进度值与角度换算公式为:扫过角度 = 进度值 * 180 / 进度最大值,比如最大值为100时,100%进度刚好扫完180°的半圆
  • 调整进度数值文本的垂直偏移量,将其移到可见的半圆区域内即可

轻量自定义实现方案(无需依赖第三方包)

如果改造第三方包适配成本太高,直接自定义绘制更可控,核心代码不超过50行:

  • WPF场景:用Path控件分别绘制背景灰色半圆弧和前景彩色进度弧,绑定ArcSegment的Size和RotationAngle属性,进度变更时动态更新前景弧的扫过角度即可,核心逻辑示例:
// 假设进度取值范围为0~100
double sweepAngle = 180 * (currentProgress / 100.0);
progressArcSegment.RotationAngle = sweepAngle;
  • Winform场景:重写控件OnPaint方法,调用DrawArc方法先绘制180°的灰色背景弧,再根据当前进度值绘制对应角度的彩色进度弧,最后在圆弧中间位置绘制进度文本即可

效果参考

原Nuget包的圆形进度条效果:
CircularProgressBar圆形进度条
期望实现的半圆形进度条效果:
目标半圆形进度条

内容的提问来源于stack exchange,提问作者tackleberry

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 12:06:02