博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WPF自定义控件与样式(10)-进度控件ProcessBar自定义样
阅读量:6959 次
发布时间:2019-06-27

本文共 1688 字,大约阅读时间需要 5 分钟。

原文:

一.前言

  申明:WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐步发布的等,若有不明白的地方可以参考本系列前面的文章,文末附有部分文章链接。

  本文主要内容

  • ProcessBar自定义标准样式;
  • ProcessBar自定义环形进度样式;

二.ProcessBar标准样式

  效果图:

 

  ProcessBar的样式非常简单:  

使用示例:  

 

三.ProcessBar环形进度样式

  效果图:

 

样式定义也比较简单:  

  上面样式中使用了两个转换器:

  • ThicknessToDoubleConverter:使用ProcessBar本身的属性BorderThickness设置环形宽度,把BorderThickness转换为环Arc宽度所需要的值;
  • PercentToAngleConverter:当前进度值转换为环Arc的角度值;

  这个地方有个小技巧,把常用的转换器声明为静态变量,XAML中以"x:Static"方式静态使用,这样使用的时候就方便多了,不用xaml中单独定义了。当然这样做也有弊端,因为静态变量本身的特点所决定的,不可滥用。 

///     /// 百分比转换为角度值    ///     public class PercentToAngleConverter : IValueConverter    {        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)        {            var percent = value.ToSafeString().ToDouble();            if (percent >= 1) return 360.0D;            return percent * 360;        }        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)        {            throw new NotImplementedException();        }    }    ///     /// 获取Thickness固定值double    ///     public class ThicknessToDoubleConverter : IValueConverter    {        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)        {            var thickness = (Thickness)value;            return thickness.Left;        }        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)        {            return DependencyProperty.UnsetValue;        }    }

 

  使用示例:  

 

附录:参考引用  

 

版权所有,文章来源:

个人能力有限,本文内容仅供学习、探讨,欢迎指正、交流。

转载地址:http://dwmil.baihongyu.com/

你可能感兴趣的文章
dpkg的用法
查看>>
notepad++开发中常用的插件
查看>>
手动发送HTTP请求调用Web Service
查看>>
巧用Office365中的Exchange Online Protection(一)
查看>>
linux入门第一讲
查看>>
我的友情链接
查看>>
一些有用的php包与简单例子
查看>>
smarty注册函数
查看>>
yum源配置的三种方法
查看>>
springmvc配置多访问方法
查看>>
RHEL/CentOS6(6.6)虚拟化入门指南(1)
查看>>
我的友情链接
查看>>
Linux下安装JDK6,Tomcat
查看>>
javascript工具函数
查看>>
软件系统设计的思路
查看>>
C++反汇编->减法分析
查看>>
邮件归档云平台
查看>>
Python3 常用函数
查看>>
haproxy实现discuz论坛的动静分离和负载均衡
查看>>
zabbix监控kafka消息列队
查看>>