在使用WPF编写客户端代码时,我们会在VM下解耦业务逻辑,而剩下与功能无关的内容比如动画.视觉效果,布局切换等等在数量和复杂性上都超过了业务代码.而如何更好的简化这些编码,WPF设计人员使用了Style和Behavior来帮助我们构建一致性.组织性好的代码. 这一章的目的是理解我们使用行为和资源的目标.使用这2个内容使我们创建封装一些通用用户界面功能的行为.比如启动故事板,加入重力的动画效果,我们要把思维给打开,我们做的东西是为了通用,而不是为了业务,因为业务在这个时刻只存在于VM中.(即使个人…
这一篇本来想先写风格主题,主题切换.自定义配套的样式.但是最近加班.搬家.新租的房子打扫卫生,我家宝宝6月中旬要出生协调各种的事情,导致了最近精神状态不是很好,又没有看到我比较喜欢的主题风格去模仿的,又不想降低教程的质量,所以就打算把风格的主题这一篇,放后面等我找到了我喜欢的主题,然后在开始仿写.这一篇先入门自定义控件. ​ WPF支持样式.内容控件和模板.因此不在刻意的强调自定义控件.这些特性为开发人员提供了多种方式来完善和扩展标准的控件,而不用派生新的控件类.通过以下几种方式能实现大部分需求…
数据模板 数据模板是一段如何显示绑定在VM对象的XAML代码.数据模板可以包含任意元素的组合,基于Binding来显示不同的信息. 在实际的开发中数据模板的应用场景很多,同样一个控件可以根据不同的绑定源,根据以设置好的数据模板可以显示对应的不同的内容. 很多人用不好控件模板和数据模板,觉得有点混乱,大部分都是在追求7天入门WPF,或者直接就问有没有快速解决我目前问题的办法,等等.我也没有,但是数据模板其实比控件模板更好写,因为他的思路比较简单,就是这个数据,通过Binding后,界面上要显示成什…
上一篇分析了WPF元素中布局系统的MeasureOverride()和ArrangeOverride()方法.本节将进一步深入分析和研究元素如何渲染它们自身. 大多数WPF元素通过组合方式创建可视化外观.元素通过其他更基础的元素进行构建.比如,使用标记定义用户控件的组合元素,处理标记方式与自定义窗口中的XAML相同.使用控件模板为自定义控件提供可视化树.并且当创建自定义面板时,根本不必定义任何可视化细节.组合元素由控件使用者提供,并添加到Children集合中. ​ 接下来就是绘制内容,在WPF…
目录 1. 概述 2. 示例 2.1. 着色器部分 2.1.1. 帧缓存着色器 2.1.2. 颜色缓存着色器 2.2. 绘制部分 2.2.1. 整体结构 2.2.2. 具体改动 3. 结果 4. 参考 1. 概述 所谓阴影,就是物体在光照下向背光处投下影子的现象,使用阴影技术能提升图形渲染的真实感.实现阴影的思路很简单: 找出阴影的位置. 将阴影位置的图元调暗. 很明显,关键还是在于如何去判断阴影的位置.阴影检测的算法当然可以自己去实现,但其实OpenGL/WebGL已经隐含了这种算法:假设摄像…
无废话ExtJs 入门教程十九[API的使用] extjs技术交流,欢迎加群(201926085) 首先解释什么是 API 来自百度百科的官方解释:API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件的以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节. ExtJs的Api必须部署到IIS上,ExtJS的API首页如下图所示: 左侧是搜索栏,可以搜索所有的Ext的组件,如上图…
无废话ExtJs 入门教程十六[页面布局:Layout] extjs技术交流,欢迎加群(201926085) 首先解释什么是布局: 来自百度词典的官方解释:◎ 布局 bùjú: [distribution;layout] 对事物的全面规划和安排,布:陈设:设置. 我对布局理解是“把**东西放在**位置显示”[动词]. ok,我们这节课就讲一下怎么样把 ExtJs 的组件,放到我们想放置的位置. 一.常用布局 (1)ContainerLayout:默认布局方式,其他布局继承该类进行扩展功能.显示:…
无废话ExtJs 入门教程十五[员工信息表Demo:AddUser] extjs技术交流,欢迎加群(201926085) 前面我们共介绍过10种表单组件,这些组件是我们在开发过程中最经常用到的,所以一定要用到非常熟练才可以,今天我们会通过一个员工信息表实例,再把这些组件串一下. (1)TextField  (2)Botton  (3)NumberField (4)Hidden (5)DataFiedl (6)RadioGroup (7)CheckBoxGroup (8)Combobox (9)F…
无废话ExtJs 入门教程十四[文本编辑器:Editor] extjs技术交流,欢迎加群(201926085) ExtJs自带的编辑器没有图片上传的功能,大部分时候能够满足我们的需要. 但有时候这个功能还是需要的.我在这里对keeditor进行了整合. 首先要下载keeditor和上传时需要引用的LitJson.dll.由于ke的版本不同,我这里提供的下载文件只适用于当前整合代码,供参考. 1.代码如下: 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML…
无废话ExtJs 入门教程十二[下拉列表联动:Combobox_Two] extjs技术交流,欢迎加群(201926085) 不管是几级下拉列表的联动实现本质上都是根据某个下拉列表的变化,去动态加载其他下拉列表,如:省.市.地区. 当我们监听到省变化时,向service端发送省的编号,service端根据收到的"省"编号到数据库中查询该省所对应的市信息, 地区同理,抓住这一点,我们只需要监听 combobox 的 select 事件并在其中实现逻辑即可. 1.代码如下: 1 <!…