摘要: 上一篇几乎都在说DoubleAnimation的应用,这篇说说PointAnimation。 1. 使用PointAnimation 使用PointAnimation可以让Shape变形,但实际上没看到多少人会这么用,毕竟WPF做的软件多数不需要这么花俏。 1.1 在XAML上使用PointAnim阅读全文
posted @ 2017-06-15 13:33 dino.c 阅读(306) 评论(3) 编辑
摘要: 相对于WPF/Silverlight,UWP的动画系统可以说有大幅提高,不过本文无意深入讨论这些动画API,本文将介绍使用Shape做一些进度、等待方面的动画,除此之外也会介绍一些相关技巧。 1. 使用StrokeDashOffset做等待提示动画 圆形的等待提示动画十分容易做,只要让它旋转就可以了阅读全文
posted @ 2017-06-10 19:44 dino.c 阅读(277) 评论(7) 编辑
摘要: 1. 前言 这篇文章介绍了继承并自定义Shape的方法,不过,恐怕,事实上,100个xaml的程序员99个都不会用到。写出来是因为反正都学了,当作写个笔记。 通过这篇文章,你可以学到如下知识点: 自定义Shape。 DeferRefresh模式。 InvalidateArrange的应用。 2. 从阅读全文
posted @ 2017-05-17 20:46 dino.c 阅读(166) 评论(3) 编辑
摘要: 在UWP UI系统中,使用Shape是绘制2D图形最简单的方式,小到图标,大到图表都用到Shape的派生类,可以说有举足轻重的地位。幸运的是从Silverlight以来Shape基本没有什么大改动,简直是UWP中的一股清流。 上图来自Pro Silverlight 5 in C ,可见Silverl阅读全文
posted @ 2017-05-13 21:42 dino.c 阅读(222) 评论(3) 编辑
摘要: 1. 原则 推荐以符合以下原则的方式编写模板化控件: 选择合适的父类: 选择合适的父类可以节省大量的工作,从UWP自带的控件中选择父类是最安全的做法,通常的选择是Control、ContentControl、ItemsControl,也可以选择从RangeBase、Selector中。 代码和UI分阅读全文
posted @ 2017-05-09 21:23 dino.c 阅读(121) 评论(0) 编辑
摘要: 1. 使用TemplateSettings统一外观 TemplateSettings提供一组只读属性,用于在新建ControlTemplate时使用这些约定的属性。 譬如,修改HeaderedContentControl的ControlTemplate以呈现不同的外观,但各个ControlTempl阅读全文
posted @ 2017-05-06 11:39 dino.c 阅读(275) 评论(2) 编辑
摘要: 1. 模仿ItemsControl 顾名思义,ItemsControl是展示一组数据的控件,它是UWP UI系统中最重要的控件之一,和展示单一数据的ContentControl构成了UWP UI的绝大部分,ComboBox,ListBox,ListView,FlipView,GridView等控件都阅读全文
posted @ 2017-05-03 20:40 dino.c 阅读(291) 评论(1) 编辑
摘要: 以我的经验来说,要让TemplatedControl支持Command的需求不会很多,大部分情况用附加属性解决这个需求会更便利些,譬如UWPCommunityToolkit的 "HyperlinkExtensions" 。 如果正在从头设计自定义控件并真的需要提供命令支持,可以参考这篇文章。支持Co阅读全文
posted @ 2017-05-01 14:43 dino.c 阅读(101) 评论(0) 编辑
摘要: 1. 基本需求 之前的 "ContentView2" 添加了PointerOver等效果,和TextBox等本来就有Header的控件放在一起反而变得鹤立鸡群。 为了解决这个问题,这次把ContentView2的Header部分分离出来做成一个可复用的控件HeaderView,它继承自Control阅读全文
posted @ 2017-04-23 23:55 dino.c 阅读(85) 评论(0) 编辑
摘要: 1. UserControl vs. TemplatedControl 在UWP中自定义控件常常会遇到这个问题:使用UserControl还是TemplatedControl来自定义控件。 1.1 使用UserControl自定义控件 继承自UserControl。 由复数控件组合而成。 包含XAM阅读全文
posted @ 2017-04-20 18:49 dino.c 阅读(124) 评论(2) 编辑