WPF 是创建桌面客户端应用程序的UI框架,支持广泛的应用开发功能,包括应用模型、资源、控件、图形、布局、数据绑定、文档和安全性。WPF是.Net的一部分,WPF 使用 XAML为应用编程提供声明性模型。
WPF常用于工业系统或上位机系统,优势是可以快速构建项目从而达到缩短项目周期的目的,尤其在医疗、工业、金融、硬件、物流、管理系统等行业领域。类库多,上手快,可以快速开发,采用MVVM模式,数据和视图分离。
WPF组成结构
WPF由引擎和编程框架两个主要部分组成。
WPF几乎在所有场景下都不依赖于标准窗体控件。
WPF控件:
分类:
布局控件:是可以容纳多个空间或者嵌套其他布局的控件,用于在UI上组织和排列控件。其父类为Panel。
内容控件:只能容纳一个控件或者布局空间作为他的内容,所以经常借助布局控件来规划其内容,其父类为ContentControl
带标题内容控件:相当于一个内容控件,但是可以加一个标题,标题部分也可以容纳一个控件或 者布局,其父类为HeaderedContentControl
条目控件:可以显示一列数据,一般情况下,是数据的类型是相同的。其共同的基类为 itemsControl
带标题的条目控件:基类为HeaderedContentControl
特殊内容控件:TextBox、TextBlock、Image等
WPF数据绑定:
数据和应用程序UI上的控件绑定起来,数据的变化会自动更新界面所看到的内容。
根据数据流的方向,把数据绑定分为以下几种:
OneWay:仅当源属性发生更改时更新目标属性。
OneWayToSource:在目标属性更改时更新源属性。
OneTime:仅当应用程序启动时或 DataContext 进行更改时更新目标属性。
TwoWay:无论是目标属性还是源属性,只要发生了更改,TwoWay 就会更新目标属性或源属性。
Default:模式根据实际情况来定,如果是可编辑的就是TwoWay,只读的就是OneWay.
WPF 提供一个常用矢量绘制的二维形状库,包括视觉效果,如渐变、位图、绘图、用视频绘画、旋转、缩放和倾斜,可以创建可直接绘制、用作画笔或用于剪辑其他形状和控件的自定义形状
WPF引入了样式,对于XAML来说引入的样式就像CSS对HTML的作用;样式是修改View(窗体、控件)样式的主要方式,可更改控件的外观。
WPF语法:XAML 语法