WPF圆形进度条

项目中使用了各类各样进度条 此次主要记录本身使用圆形的进度条心得html

以下图:分别对应着 老版本、新版本、如今框架

 

12

    作东西以前 确定先网上找找看,一搜索一大堆链接,固然也有一些UI框架带这样的控件,我看了几个,各类类和样式继承类,主要是和他们本身框架结合一块儿。仅仅为了一个控件,那样作 简单问题复杂化。下面是单独介绍的一些有用连接..net


http://www.javashuo.com/article/p-ehxyeaxu-cn.htmlpwa

http://www.javashuo.com/article/p-pfeabpqk-cd.htmlcode

http://www.javashuo.com/article/p-pchsknvk-bv.htmlhtm

http://www.mamicode.com/info-detail-1272981.htmlblog

https://blog.csdn.net/u010875635/article/details/84197393继承

    

    可是介于项目好多不能直接使用,由于有些功能不全,不能知足要求。 好比起点的位置,有人喜欢在顶部开始,而有的从左边开始,我还见过从右边开始的,有的顺时针,有的逆时针 ,因此得本身作些扩展。      ip

刚开始要实现这些功能以为挺费劲.get

一、圆环被分割了

二、圆环圆角开始和结束,给人感受要从新绘制  

 

主要是当时不知道的太多,说一下难点处理方式,也是本篇文章重点至少对于我来讲是这样.

一、圆环被分割 主要是不清楚StrokeDashArray,这个属性其实不少地方用过不知道Path也有,常见的是虚边框矩形

新版中 只须要一个开始点和结束点就能够实现功能了,StrokeDashArray设置分割,StrokeThickness设置圆弧宽度

而不须要这样搞 http://www.javashuo.com/article/p-pchsknvk-bv.html

二、圆环圆角开始和结束这个问题 真耽误2 3小时, 新版中是画一个弧线, 而我要实现圆角,画四个弧线,也就须要知道4个点,

把以前的代码逻辑和思路全都换了,位置计算不许画的弧不圆滑,

另外进度100%的时候圆角开始和圆角结束重合,即Path有重合就透明了, 平时CombinedGeometry合并用的是2个,

而此次有四个路径 因而逐个属性查找 ,最终PathGeometry上设置FillRule = FillRule.Nonzero,   捣鼓很多时间功能是知足了 。

 

    搞完以后以为有些知识本身仍是不太清楚,好比上面提到的合并以前是没有这样用过,因而就多了解一下Path,这一了解给我大惊一下, 明明一句代码搞定的事情,我花费3小时,在那改写代码,瞬间一万个后悔,为何不先看,为何不先看, 为何不先看!

这个鬼东西就是: StrokeStartLineCap="Round" 、StrokeEndLineCap="Round

设置这2个属性后,以前代码不用变化,因而把这2个属性也公开了,整个系统能够只用一个控件。

顺便提一下:StrokeLineJoin属性,也是改变链接处形状,除了开始和结束。

   最后但愿有相似需求的人,能帮助到你,若是当时要是先知道这些能省时间。人一辈子时间有限,写代码的时间更有限。

模拟以下图:

相关文章
相关标签/搜索