随笔分类 -  WPF

摘要:1. 在 ControlTemplate 中寻找元素 <Window.Resources> <ControlTemplate x:Key="cTmp"> <StackPanel> <StackPanel.Resources> <Style TargetType="TextBlock"> <Sette 阅读全文
posted @ 2021-02-26 22:17 鑫茂 阅读(510) 评论(0) 推荐(0)
摘要:1. 关系 凡是 Template,最后都得作用到 控件 上,这个控件就是 Template 的目标控件(也称模板化控件); DataTemplate 一般是落实在一个 ContentPresenter 对象上,而 ContentPresenter 类只有 ContentTemplate 属性、没有 阅读全文
posted @ 2021-02-26 22:12 鑫茂 阅读(653) 评论(0) 推荐(1)
摘要:常用 ControlTemplate 的地方:Control 的 Template 属性 运用效果举例:穿着 CheckBox 外衣的 ToggleButton,披着温度计的 ProgressBar。 好处: 通过更换 ControlTemplate 改变控件外观,使之具有更优的用户使用体验及外观; 阅读全文
posted @ 2021-02-25 22:35 鑫茂 阅读(1071) 评论(0) 推荐(0)
摘要:如果把控件的功能视为内容,则可以使用控件模板 ControlTemplate 来控制它的展现; 如果把数据视为内容,则可以使用数据模板 DataTemplate 把数据展示出来; ControlTemplate 是算法内容的表现形式,一个控件怎样组织其内部结构才让它更符合业务逻辑、让用户操作起来更舒 阅读全文
posted @ 2021-02-25 22:15 鑫茂 阅读(803) 评论(0) 推荐(0)
摘要:为了避免丢失和损坏,编译器允许我们把外部文件编译进程序主体、成为程序主体不可分割的一部分,这就是传统意义上的程序资源,即二进制资源; WPF 的四个等级资源: 数据库里的数据 (仓库) 资源文件 (行旅箱) 对象资源 (背包) 变量中的数据 (手中) 1. 对象级的定义和查找 <Window.Res 阅读全文
posted @ 2021-02-25 22:10 鑫茂 阅读(173) 评论(0) 推荐(0)
摘要:1. 前言 WPF 事件的路由环境是 UI 组件树,先来看看这棵树。 1.1 Logical Tree 和 Visual Tree WPF 中的树有两种,一颗是逻辑树,另一颗也是逻辑树。 开玩笑,WPF 不是鲁迅,另一颗是可视元素树。 逻辑树的每个节点不是布局组件就是控件; 而可视化树把逻辑树延伸到 阅读全文
posted @ 2021-02-25 22:09 鑫茂 阅读(261) 评论(0) 推荐(0)
摘要:1. CLR 属性 .Net Framework 中的属性又称为 CLR 属性,是对 private 字段的安全访问包装。 使用 ILSpy 反编译器可以看到 C# 中代码的属性的编译结果是 set._xx 、get._xx 两个方法; 即使再多的实例,方法也只有一个拷贝,因此 CLR 属性并不会增 阅读全文
posted @ 2021-02-24 22:54 鑫茂 阅读(230) 评论(0) 推荐(0)
摘要:MultiBinding 与 Binding 一样继承自 BindingBase,因此可以使用 Binding 的地方都可以使用 MultiBinding。 namespace System.Windows.Data { [ContentProperty("Bindings")] public cl 阅读全文
posted @ 2021-02-24 22:49 鑫茂 阅读(715) 评论(0) 推荐(0)
摘要:1. Binding 对数据的转换和校验 Binding 中,有检验和转换关卡。 1.1 数据校验 源码: namespace System.Windows.Data { public class Binding : BindingBase { ... public Collection<Valid 阅读全文
posted @ 2021-02-24 22:45 鑫茂 阅读(222) 评论(0) 推荐(0)
摘要:1. 源与路径 把控件作为 binding 源与 binding 标记拓展; 控制 Binding 的方向及数据更新; Binding 的路径 Path; 没有路径的 Binding; 为 Binding 指定源的几种方法; 没有 Source 的 Binding; 使用集合对象作为列表控件的 It 阅读全文
posted @ 2021-02-24 18:57 鑫茂 阅读(6371) 评论(1) 推荐(2)
摘要:WPF 作为一个专门的展示层技术,让程序员专注于逻辑层,让展示层永远处于逻辑层的从属地位; 这主要因为有 DataBinding 和配套的 Dependency Property 和 DataTemplate; 1. 数据更新提醒 Binding 是一种自动机制,当属性的值变化后属性要有能力通知 B 阅读全文
posted @ 2021-02-24 18:56 鑫茂 阅读(376) 评论(0) 推荐(0)
摘要:1. 前言 1. 数据驱动 UI WPF 是数据核心、主动的,UI 从属数据并表达数据、是被动的; 不再是 UI 驱动数据,而是数据驱动 UI; 2. 控件的定义 控件、数据内容、行为(控件响应用户操作执行自己的方法或以事件的形式通知应用程序); 1)控件是数据和行为的载体; 2)所以关注控件时应该 阅读全文
posted @ 2021-02-23 22:54 鑫茂 阅读(321) 评论(0) 推荐(0)
摘要:名称 种类(默认Attribute) 备注 x:Array 标记拓展 可作为 ListBox.ItemsSource 的值 x:Class 指定与 .cs 中哪个类合并,所指示的类型在声明时使用 partial 关键字 x:ClassModifier 指定标签编译生成的类具有怎样的访问控制级别,跟类 阅读全文
posted @ 2021-02-23 22:23 鑫茂 阅读(233) 评论(0) 推荐(0)
摘要:Attribute 与 Property 之间的区别 Property 对应着抽象对象身上的性状; Attribute 是针对标签的特征; 往往一个标签具有的 Attribute 对于它所代表的对象的 Property。 1. 为对象属性赋值 1.1 使用标签的 Attribute 为对象属性赋值; 阅读全文
posted @ 2021-02-23 09:48 鑫茂 阅读(361) 评论(0) 推荐(0)