03 2021 档案

摘要:WPF中使用路由事件升级了传统应用开发中的事件,在WPF中使用路由事件能更好的处理事件相关的逻辑,我们从这篇开始整理事件的用法和什么是直接路由,什么是冒泡路由,以及什么是隧道路由。 事件最基本的用法 在基于事件驱动的开发中,把代码放在响应注册的事件的处理函数内,比如Click事件、MouseDown 阅读全文
posted @ 2021-03-30 17:43 杜文龙 阅读(1504) 评论(6) 推荐(2) 编辑
摘要:附加依赖项属性是一个属性本来不属于对象自己,但是某些特定场景其他的对象要使用该对象在这种场景下的值。这个值只在这个场景下使用。基于这个需求设计出来的属性。这里主要涉及到一个解耦问题。最大的优势是在特定场景下使用的属性,可以在特定场景下定义。这样业务上不会导致代码全部混在某个模块里。提升代码可维护性。 阅读全文
posted @ 2021-03-25 13:35 杜文龙 阅读(626) 评论(0) 推荐(0) 编辑
摘要:我们有时候又需求从当前视觉树中找一些东西,比如鼠标按下的时候,看看鼠标下的元素都有什么。又比如某块区域下有哪些元素?某个坐标点下有哪些元素? 这些需求在使用 命中测试的时候,可以非常方便和快速的去找到我们需要的内容。 简单命中测试 我们写一个最简单的命中测试的示例,来了解命中测试。我在一个画板上在不 阅读全文
posted @ 2021-03-24 19:35 杜文龙 阅读(717) 评论(0) 推荐(0) 编辑
摘要:今天有人问我想实现一个流光效果。我简单的录了一下他想实现效果的GIF。 实际效果如下:因为今天有事情,只是大概实现了一个效果。主要使用PointAnimationUsingKeyFrames动画效果来实现。以后有空了会写一些更好看的。 代码如下: <Window x:Class="StreamerE 阅读全文
posted @ 2021-03-18 01:06 杜文龙 阅读(909) 评论(0) 推荐(0) 编辑
摘要:封装 属性 附加依赖项属性 阅读全文
posted @ 2021-03-12 19:09 杜文龙 阅读(786) 评论(0) 推荐(3) 编辑
摘要:之前大家写代码都喜欢用事件驱动,比如说鼠标输入的click事件、初始化的内容全部放在窗体加载完毕的load事件,等等,里面包含了大量的由事件触发后的业务处理代码。导致了UI和业务逻辑高度耦合在一个地方。代码难于维护、也难以优化。 我们这个章要讲的内容是忘记我们的事件驱动、尝试理解数据驱动。客户端开发 阅读全文
posted @ 2021-03-08 23:33 杜文龙 阅读(1112) 评论(5) 推荐(1) 编辑
摘要:WPF的布局系统 了解元素的测量和排列方式是理解布局的第一步。在测量(measure)阶段容器遍历所有子元素,并询问子元素它们所期望的尺寸。在排列(arrange)阶段,容器在合适的位置放置子元素。理论上布局就结束了。 所有的WPF布局容器都派生自System.Windows.Controls.Pa 阅读全文
posted @ 2021-03-01 23:34 杜文龙 阅读(1325) 评论(2) 推荐(0) 编辑