基础知识: 数据绑定是一种关系,该关系告诉WPF从源对象提取一些信息,并用这些信息设置目标对象的属性:目标对象始终是依赖属性,而源对象则可以是任何内容. BindingOperations类,提供静态方法用于操作绑定,包括Binding对象.MultiBinding对象和PriorityBinding对象. 绑定到非元素对象时,需放弃Binding.ElementName属性,并使用:Source.RelativeSource和DataContext属性中的任意一个. 续上:显示信息必须存储在公…
基础知识: 命令是应用程序的任务,并跟踪任务是否能够被执行. 命令不包含执行应用程序任务的代码. 命令是比事件更高级的元素.默认的命令目标是当前获得焦点的元素. 良好的Win应用程序,应用程序逻辑不应位于事件处理程序中,而应在更高层的方法中编写代码. 将事件委托到适当的命令,使控件的启动状态和相应命令的状态保持同步. WPF命令模型: 图1 WPF命令模型 7. System.Windows.Input.RoutedCommand类是WPF中唯一实现了ICommand接口的类.它不包含任何应用程…
参考资料: 1.http://www.cnblogs.com/Zhouyongh/archive/2009/10/20/1586278.html 基础知识: DependencyObject & DependencyProperty类位于System.Windows命名空间,程序集:WindowsBase.dll: DependencyObject类通过其各子类开启WPF属性系统服务: 属性系统的主要功能是:将计算属性值和提供值改变的系统通知: DependencyProperty类是另一个在属…
基础知识: WPF:Windows Presentation Foundation,用于Windows的现代图形显示系统: WPF用于编写应用程序的表示层: 引入“内置硬件加速”和“分辨率无关”: Silverlight是WPF的一个子集,是WPF的“网络版”(WPF/E): WPF的开发理念:“数据驱动”,数据驱动UI(数据第一,控件第二): 数据与界面之间的桥梁是Data Binding: MVVM:Model-View-ViewModel: XMAL:Extensible Applicat…
基础知识: WPF的资源是一种保管一系列有用对象的简单方法,方便于重用. WPF UI元素的Resources属性,都是继承自FrameworkElement列,且其类型为ResourceDictionary. ResourceDictionary在保存资源时,会将资源转换为object类型.XAML编译器能根据标签的Attribute自动识别资源类型,而C#中则需要我们介入转换. WPF资源网站:http://wpf.codeplex.com/ StaticResource是在程序载入内存时对…
基础知识: 传统的事件模型中,会在消息触发时将消息通过事件传给事件的订阅者(显式的事件订阅),事件订阅者使用事件处理程序来做出响应.事件订阅者必须能够直接访问到事件的宿主(拥有者). 路由事件的事件的拥有者和事件的订阅者之间没有显式订阅关系.拥有者只负责触发事件,它并不知道事件将会由谁响应,事件的订阅者通过事件监听器监听事件,一旦事件触发就对其进行处理(调用相关的事件处理程序),同时并决定该事件是否继续传递. 传统事件通过.NET事件封装器触发,而路由事件则通过RaiseEvent()方法触发.…
基础知识: XAML:Extensible Application Markup Language, zammel: 用于实例化.NET对象的标记语言: XMAL使用树形逻辑结构描述UI: BAML:Binary Application Markup Language,即XMAL的二进制表示,VS会在编译WPF应用程序时,将所有XAML转换为BAML,且BAML最终会作为资源被嵌入到DLL或EXE程序集中: BAML是标记化的,故相对于XAML较小: WPF应用程序三个顶级元素:Window.P…
WPF使用的是容器(container)进行布局: WPF窗口(Window类型)只能包含单个元素,故为了放置多个元素并增强界面效果,引入了容器: WPF布局容器都派生自System.Windows.Controls.Panel抽象类: 图1 Panel类及其子类的继承关系图 1. StackPanel示例 XAML代码: <Window x:Class="LayoutTest.MainWindow" xmlns="http://schemas.microsoft.co…
“x命名空间”中x是XAML的首字母,用来引导XAML编译器把XAML代码编译成CLR代码.下边的图片表格列举了该命名空间部分成员及其作用,更多请见URL:https://msdn.microsoft.com/zh-cn/library/ee792007(v=vs.110).aspx. 图1 部分x命名空间成员及其作用…
最近一直在使用Vue.js开发项目,现将在学习过程中遇到的一些学习小细节总结如下: 1.只处理单次插值,今后的数据变化就不会再引起插值更新了 <span>This will never change: {{* msg }}</span>  2.为了输出真的 HTML 字符串,需要用三 Mustache 标签] <div>{{{ raw_html }}}</div> 3.v-bind缩写 <!-- 完整语法 --> <a v-bind:hre…