摘要: 上一章分析了WPF元素的内部工作元素——允许每个元素插入到WPF布局系统的MeasureOverride()和ArrangeOverride()方法中。本章将进一步深入分析和研究元素如何渲染自身。 大多数WPF元素通过组合方式创建可视化外观。换句话说,典型的元素通过其他更基础的元素进行构建。例如,使 阅读全文
posted @ 2020-05-03 22:13 Peter.Luo 阅读(1792) 评论(2) 推荐(1) 编辑
摘要: 前面两个章节分别介绍了两个自定义控件:自定义的ColorPicker和FlipPanel控件。接下来介绍派生自定义面板以及构建自定义绘图控件。 创建自定义面板是一种特殊但较常见的自定义控件开发子集。前面以及介绍过有关面板方面的知识,了解到面板驻留一个或多个子元素,并且实现了特定的布局逻辑以恰当地安排 阅读全文
posted @ 2020-04-21 21:37 Peter.Luo 阅读(1449) 评论(1) 推荐(6) 编辑
摘要: 上一章介绍的ColorPicker控件,是控件设计的最好示例。因为其行为和可视化外观是精心分离的,所以其他设计人员可开发动态改变其外观的新模板。 ColorPicker控件如此简单的一个原因是不涉及状态。换句话说,不根据是否具有焦点、鼠标是否在它上面悬停、是否禁用等状态区分其可视化外观。接下来本章介 阅读全文
posted @ 2020-04-12 22:16 Peter.Luo 阅读(1290) 评论(4) 推荐(5) 编辑
摘要: 用户控件的目标是提供增补控件模板的设计表面,提供一种定义控件的快速方法,代价是失去了将来的灵活性。如果喜欢用户控件的功能,但需要修改使其可视化外观,使用这种方法就有问题了。例如,设想希望使用相同的颜色拾取器,但希望使用不同的“皮肤”,将其更好地融合到已有的应用程序窗口中。可以通过样式来改变用户控件的 阅读全文
posted @ 2020-04-08 20:21 Peter.Luo 阅读(1533) 评论(2) 推荐(4) 编辑
摘要: 创建一个简单用户控件是开始自定义控件的好方法。本章主要介绍创建一个基本的颜色拾取器。接下来分析如何将这个控件分解成功能更强大的基于模板的控件。 创建基本的颜色拾取器很容易。然而,创建自定义颜色拾取器仍是有价值的联系,因为这不仅演示了构建控件的各种重要概念,而且提供了一个实用的功能。 可为颜色拾取器创 阅读全文
posted @ 2020-04-08 13:16 Peter.Luo 阅读(1349) 评论(1) 推荐(4) 编辑
摘要: 尽管可在任意WPF项目中编写自定义元素,但通常希望在专门的类库程序集(DLL)中放置自定义元素。这样,可在多个WPF应用程序之间共享自定义元素。 为确保具有正确的程序集引用和名称空间导入,当在Visual Studio中创建应用程序时,应当选择Custom Control Library(WPF)项 阅读全文
posted @ 2020-04-07 21:17 Peter.Luo 阅读(772) 评论(2) 推荐(1) 编辑
摘要: 在控件模板和为其提供支持的代码之间又一个隐含约定。如果使用自定义控件模板替代控件的标准模板,就需要确保新模板能够满足控件的实现代码的所有需要。 在简单控件中,这个过程比较容易,因为对模板几乎没有(或完全没有)什么真正的需求。对于复杂控件,问题就显得有些微妙了,因为控件的外观和实现不可能完全相互独立的 阅读全文
posted @ 2020-04-07 18:22 Peter.Luo 阅读(1174) 评论(0) 推荐(9) 编辑
摘要: 为表达全国各族人民对抗击新冠肺炎疫情斗争牺牲烈士和逝世同胞的深切哀悼,国务院今天发布公告,决定2020年4月4日举行全国性哀悼活动。 当使用控件模板时,需要决定如何更广泛地共享模板,以及是否希望自动地或明确地位用模板。 第一个问题是关于希望在何处使用模板的问题。例如,是将它们限制在特定窗口中吗?大多 阅读全文
posted @ 2020-04-04 19:50 Peter.Luo 阅读(823) 评论(0) 推荐(3) 编辑
摘要: 经过数十天的忙碌,今天终于有时间写博客。 前面一章通过介绍有关模板工作方式相关的内容,同时介绍了FrameWorkElement下所有控件的模板。接下来将介绍如何构建一个简单的自定义按钮,并在该过程中学习有关控件模板的一些细节。 通过上一章内容,基本Button控件使用ButtonChrome类绘制 阅读全文
posted @ 2020-04-03 20:11 Peter.Luo 阅读(1595) 评论(0) 推荐(4) 编辑
摘要: 最近工作比较忙,未能及时更新内容,敬请了解!!! 对于可视化树的分析引出了几个有趣问题。例如,控件如何从逻辑树表示扩张成可视化树表示? 每个控件都有一个内置的方法,用于确定如何渲染控件(作为一组更基础的元素)。该方法称为控件模板(control template),是用XAML标记块定义的。 下面是 阅读全文
posted @ 2020-03-17 23:33 Peter.Luo 阅读(1380) 评论(2) 推荐(6) 编辑