摘要:Kino.Toolkit.Wpf " " " " " " " " " " Kino.Toolkit.Wpf是一组简单实用的WPF控件与工具,用于介绍自定义控件的入门。相关博客地址如下: "开始一个自定义控件库项目" 介绍开始一个自定义控件库项目需要考虑的地方,包括版本号、目录结构等。 "从Conte 阅读全文
posted @ 2019-05-13 15:24 dino.c 阅读 (358) 评论 (3) 编辑
摘要:UWP自定义控件的入门文章 "[UWP 自定义控件]了解模板化控件(1):基础知识" "[UWP 自定义控件]了解模板化控件(2):模仿ContentControl" "[UWP 自定义控件]了解模板化控件(2.1):理解ContentControl" "[UWP 自定义控件]了解模板化控件(3): 阅读全文
posted @ 2018-11-16 11:16 dino.c 阅读 (240) 评论 (2) 编辑
摘要:1. 前言 每一个有理想的UWP应用都会打标题栏的主意,尤其当微软提供 "将 Acrylic 扩展到标题栏" 这个功能后,大部分Windows 10的原生应用都不乖了,纷纷占领了标题栏的一亩三分地。这篇博客将介绍在UWP中如何自定义标题栏。 2.示例代码 UWP的限制很多,标题栏的自定义几乎全部内容 阅读全文
posted @ 2019-09-04 09:24 dino.c 阅读 (168) 评论 (1) 编辑
摘要:1. 什么是滚动轮劫持 这篇文章介绍一个很简单的继承自ScrollViewer的控件: 所有代码就这么多,这个ExtendedScrollViewer 只是用来解决滚动轮劫持(scroll wheel hijack)的问题。所谓的滚动轮劫持,简单来说即是在一个可以滚动的页面使用鼠标滚轮滚动页面的过程 阅读全文
posted @ 2019-08-27 22:24 dino.c 阅读 (240) 评论 (2) 编辑
摘要:1. 在WPF怎么在UI上添加超级链接 这篇文章的目的是介绍怎么在WPF里创建自定义的HyperlinkButton控件。很神奇的,WPF居然连HyperlinkButton都没有,不过它提供了另一种方式用于在UI上添加超级链接: 如果需要在超级链接里放图片或其它东西,代码如下: 这真是很怪,为什么 阅读全文
posted @ 2019-08-22 09:41 dino.c 阅读 (385) 评论 (6) 编辑
摘要:1. VisualStuio中的测试资源管理器、CodeLens和ReSharper "上一篇文章" 重温了《单元测试的艺术》里提到的单元测试的技术及原则。这篇文章实践使用VisualStudio 2019进行单元测试。 在VisualStudio中通常都会使用“测试资源管理器”进行单元测试。 Pr 阅读全文
posted @ 2019-07-30 09:13 dino.c 阅读 (925) 评论 (0) 编辑
摘要:1. 前言 关于单元测试的定义和好处可以借用Stephen Cleary的一段话来概括: 单元测试是现代开发的基础。对项目进行单元测试的好处非常容易理解:单元测试降低了 Bug 数量,缩短了上市时间,防止过度耦合的设计。这些都是很好的优势,但它还有更多与开发人员更直接相关的优点。在我编写单元测试时, 阅读全文
posted @ 2019-07-29 09:34 dino.c 阅读 (419) 评论 (2) 编辑
摘要:1. 前言 上一篇文章介绍了使用Resizer实现Expander简单的动画效果,运行效果也还好,不过只有展开/折叠而缺少了淡入/淡出的动画(毕竟Resizer模仿Expander只是附带的功能)。这篇继续Measure的话题,自定义了一个带有动画的ExtendedExpander。 2. Exte 阅读全文
posted @ 2019-07-24 22:13 dino.c 阅读 (432) 评论 (2) 编辑
摘要:1. 前言 这篇文章介绍WPF UI元素的两步布局过程,并且通过Resizer控件介绍只使用Measure可以实现些什么内容。 我不建议初学者做太多动画的工作,但合适的动画可以引导用户视线,提升用户体验。例如上图的这种动画,这种动画挺常见的,在内容的高度改变时动态地改变自身的高度,除了好看以外,对用 阅读全文
posted @ 2019-07-17 20:47 dino.c 阅读 (814) 评论 (13) 编辑
摘要:1. 前言 A long time ago in a galaxy far, far away....微软在Silverlight Toolkit里提供了一个好用的VisualTreeExtensions,里面提供了一些查找VisualTree的扩展方法。在那个时候(2009年),VisualTre 阅读全文
posted @ 2019-07-11 09:09 dino.c 阅读 (523) 评论 (6) 编辑
摘要:1. 自己用的番茄钟自己做 在PC上我一直使用“小番茄”作为我的番茄钟软件,我把它打开后放在副显示器最大化,这样不仅可以让它尽到本分,而且还可以告诉我的同事“我正在专心工作”。可是我总是嫌弃它的手感不够愉悦,总想自己写一个番茄钟软件,正好最近很久没写UWP应用了很手痒,于是就抽空写了个自用的番茄钟并 阅读全文
posted @ 2019-07-03 09:12 dino.c 阅读 (604) 评论 (11) 编辑
摘要:1. 强化高亮的功能 "上一篇文章" 介绍了使用附加属性实现TextBlock的高亮功能,但也留下了问题:不能定义高亮(或者低亮)的颜色。为了解决这个问题,我创建了 这个类,比单纯的字符串存储更多的信息,这个类的定义如下: 相应地,附加属性的类型也改变为这个类,并且属性值改变事件改成这样: 的关键代 阅读全文
posted @ 2019-06-26 08:59 dino.c 阅读 (337) 评论 (0) 编辑