随笔分类 -  wpf

摘要:数据模板 数据模板是一段如何显示绑定在VM对象的XAML代码。数据模板可以包含任意元素的组合,基于Binding来显示不同的信息。 在实际的开发中数据模板的应用场景很多,同样一个控件可以根据不同的绑定源,根据以设置好的数据模板可以显示对应的不同的内容。 很多人用不好控件模板和数据模板,觉得有点混乱, 阅读全文
posted @ 2021-05-26 09:57 杜文龙 阅读(2029) 评论(0) 推荐(3) 编辑
摘要:上一篇分析了WPF元素中布局系统的MeasureOverride()和ArrangeOverride()方法。本节将进一步深入分析和研究元素如何渲染它们自身。 大多数WPF元素通过组合方式创建可视化外观。元素通过其他更基础的元素进行构建。比如,使用标记定义用户控件的组合元素,处理标记方式与自定义窗口 阅读全文
posted @ 2021-05-20 22:38 杜文龙 阅读(6037) 评论(1) 推荐(6) 编辑
摘要:如果你敲了上一篇的代码,经过上一篇各种问题的蹂躏,我相信自定义控件基础部分其实已经了解的七七八八了。那么我们开始进阶,现在这篇讲的才是真正会用到的核心的东西。简化你的代码。给你提供更多的可能,掌握了这篇,才能发挥出来WPF的威力。这一篇学完我们的鸟枪就要换大炮了。 ColorPicker例子分离了行 阅读全文
posted @ 2021-05-09 21:35 杜文龙 阅读(1461) 评论(3) 推荐(3) 编辑
摘要:这一篇本来想先写风格主题,主题切换、自定义配套的样式。但是最近加班、搬家、新租的房子打扫卫生,我家宝宝6月中旬要出生协调各种的事情,导致了最近精神状态不是很好,又没有看到我比较喜欢的主题风格去模仿的,又不想降低教程的质量,所以就打算把风格的主题这一篇,放后面等我找到了我喜欢的主题,然后在开始仿写。这 阅读全文
posted @ 2021-04-29 21:51 杜文龙 阅读(1743) 评论(3) 推荐(3) 编辑
摘要:##WPF教程十一:简单了解并使用控件模板 这一章梳理控件模板,每个WPF控件都设计成无外观的,但是行为设计上是不允许改变的,比如使用Button的控件时,按钮提供了能被点击的内容,那么自由的改变控件外观时,Button作为按钮的本质是没有改变的,同样响应的是按钮的逻辑。所以我们使用控件模板主要也是 阅读全文
posted @ 2021-04-21 22:21 杜文龙 阅读(1344) 评论(3) 推荐(2) 编辑
摘要:在使用WPF编写客户端代码时,我们会在VM下解耦业务逻辑,而剩下与功能无关的内容比如动画、视觉效果,布局切换等等在数量和复杂性上都超过了业务代码。而如何更好的简化这些编码,WPF设计人员使用了Style和Behavior来帮助我们构建一致性、组织性好的代码。 这一章的目的是理解我们使用行为和资源的目 阅读全文
posted @ 2021-04-14 22:41 杜文龙 阅读(1709) 评论(2) 推荐(5) 编辑
摘要:在WPF中,所有继承自FrameworkElement的元素都包含一个Resources属性,这个属性就是我们这篇要讲的资源。 这一篇讲解的资源是不是上一篇的程序集资源(那个是在编译过程中打包到程序集中),这个是资源是我们想在公共的地方写一个对象让其他元素重复使用。 先贴个例子: <Window x 阅读全文
posted @ 2021-04-07 15:57 杜文龙 阅读(1032) 评论(1) 推荐(3) 编辑
摘要:这一篇单独拿出来分析这个程序集资源,为的就是不想让大家把程序集资源和exe程序强关联,因为程序集资源实际上是二进制资源,后续编译过程中会被嵌入到程序集中,而为了更方便的使用资源,我们要好好梳理一下程序集资源相关的知识。(例如多语言资源,多工程、多项目使用的公共资源文件)。 1)在程序集中添加资源 我 阅读全文
posted @ 2021-04-02 18:34 杜文龙 阅读(1461) 评论(0) 推荐(3) 编辑
摘要:这个章节来了解Application类,我考虑了一晚上决定跳过控件类相关的学习,因为控件如果只是入门的话每个控件F12跳过去看一下属性、事件就能大致了解的差不多,而且控件比较多,每个都这样看一遍,感觉意义不大。同时控件的使用一般又同时包含了,资源、样式、触发器、模板、绑定、列表控件的话,可能还包含列 阅读全文
posted @ 2021-04-01 13:04 杜文龙 阅读(2974) 评论(1) 推荐(2) 编辑
摘要:WPF中使用路由事件升级了传统应用开发中的事件,在WPF中使用路由事件能更好的处理事件相关的逻辑,我们从这篇开始整理事件的用法和什么是直接路由,什么是冒泡路由,以及什么是隧道路由。 事件最基本的用法 在基于事件驱动的开发中,把代码放在响应注册的事件的处理函数内,比如Click事件、MouseDown 阅读全文
posted @ 2021-03-30 17:43 杜文龙 阅读(1709) 评论(6) 推荐(2) 编辑
摘要:附加依赖项属性是一个属性本来不属于对象自己,但是某些特定场景其他的对象要使用该对象在这种场景下的值。这个值只在这个场景下使用。基于这个需求设计出来的属性。这里主要涉及到一个解耦问题。最大的优势是在特定场景下使用的属性,可以在特定场景下定义。这样业务上不会导致代码全部混在某个模块里。提升代码可维护性。 阅读全文
posted @ 2021-03-25 13:35 杜文龙 阅读(660) 评论(0) 推荐(0) 编辑
摘要:封装 属性 附加依赖项属性 阅读全文
posted @ 2021-03-12 19:09 杜文龙 阅读(829) 评论(0) 推荐(3) 编辑
摘要:之前大家写代码都喜欢用事件驱动,比如说鼠标输入的click事件、初始化的内容全部放在窗体加载完毕的load事件,等等,里面包含了大量的由事件触发后的业务处理代码。导致了UI和业务逻辑高度耦合在一个地方。代码难于维护、也难以优化。 我们这个章要讲的内容是忘记我们的事件驱动、尝试理解数据驱动。客户端开发 阅读全文
posted @ 2021-03-08 23:33 杜文龙 阅读(1185) 评论(5) 推荐(1) 编辑
摘要:WPF的布局系统 了解元素的测量和排列方式是理解布局的第一步。在测量(measure)阶段容器遍历所有子元素,并询问子元素它们所期望的尺寸。在排列(arrange)阶段,容器在合适的位置放置子元素。理论上布局就结束了。 所有的WPF布局容器都派生自System.Windows.Controls.Pa 阅读全文
posted @ 2021-03-01 23:34 杜文龙 阅读(1469) 评论(2) 推荐(0) 编辑
摘要:在实际的WPF开发中遇到很多再用Winform写法来写WPF的开发人员,很多时候项目进度延期、出现非必要的BUG等等、大多是因为开发人员虽然是再写WPF。 但是没有好好的学过WPF,就导致无法发挥出WPF的优势、很多地方都是开个线程处理完成后一个回调UI线程函数里面套一整段代码,这种情况下不仅难处理 阅读全文
posted @ 2021-02-21 00:55 杜文龙 阅读(1533) 评论(6) 推荐(5) 编辑

点击右上角即可分享
微信分享提示