5、构建自定义控件与面板:从圆形分钟计时器到布局原理

构建自定义控件与面板:从圆形分钟计时器到布局原理

一、构建圆形分钟计时器

想象一下,你需要构建一个如图所示的圆形计时器,它从 0 秒开始,计数到 60 秒。这个控件有广泛的应用,听起来是个有趣的项目。

乍一看,由于 WPF 没有以圆形方式计时的控件,你可能认为需要创建一个自定义控件。但我们可以先回顾之前的思考流程,也许不需要创建新控件,而是增强现有控件来实现。

(一)选择合适的基础控件

我们将需求抽象为需要一个能显示给定范围内值(这里是 0 到 60)的控件。WPF 中有很多符合范围控件要求的控件,如 ScrollBar、Slider 和 ProgressBar。
- ScrollBar 不太合适,因为我们需要显示值,而不是通过交互方式控制当前进度。
- Slider 也是交互式的值更改控件,也不符合需求。
- 因此,ProgressBar 是更有希望的选择。我们也可以创建一个从 RangeBase 派生的新控件,但这需要重新实现 ProgressBar 的很多功能。

(二)增强和扩展 ProgressBar

很明显,可以通过扩展和增强 ProgressBar 来创建径向分钟计时器。默认情况下,ProgressBar 显示为垂直或水平条,我们需要的是环形显示。首先要确定环形是控件的一部分还是其中包含的数据。这里,环形是控件容器,所以从 ControlTemplate 入手创建环形是个好的开始。

(三)创建“进度环”的控件模板

创建“进度环”的控件模板有几种选择:
- 表示进度的环形实际上是一个从 0 度到 360 度的弧,可以用粗

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值