WPF基础知识
开发工具与关键技术:WPF架构、.NET、Visual Studio
一、WPF简介
WPF是(Windows Presentation Foundation)的简称,即“Windows呈现基础”。WPF是微软新一代图形系统,是基于Windows的用户界面框架,有着超强的动画机制。它提供了统一的编程模型、语言和框架,真正做到了分离界面设计人员与开发人员的工作,让美工人员与程序人员的明确分工,同时它提供了全新的多媒体交互用户图形界面。
二、XAML简介
XAML是派生自XML的可扩展应用程序标记语言(Extensible Application Markup Language)。在WPF中,XAML用来开发用户界面。XAML有三个顶级元素:Window(窗口)、UserControl(用户控件,布局的时候像窗体那样布局就可以了)、Page(页)把窗体以网页形式展现。
三、UI布局面板
一个XAML页面里只能有一个顶级元素,而顶级元素里面只能有一个子元素。因此要用到布局元素。WPF作为专业的界面技术,布局功能是它的核心技术之一。WPF设计师最大的工作量就是布局和动画,大部分布局都是动画间的转换。
XAML常用五个布局元素:
1.Grid:网格;可以自定义行和列,并通过行列的数量、行高列宽来调整控件的布局。
2.StackPanel:栈式面板;可将包含的元素在水平或垂直方向排成一条线,当移除一个元素后,后面的元素会自动向前填充空缺。
3.Canvas:画布;内部元素可以使用以像素为单位的绝对坐标进行定位。
4.DockPanel:泊靠式面板;内部元素可以选择泊靠的方向(上下左右)。
5.WrapPanel:自动折行面板;内部元素在排满一行后能够自动折行。
四、属性
属性有三种,分别为基本属性、依赖属性和附加属性。
基本属性就是直接使用属性。
依赖属性:依赖属性的用途在于提供一种方法来给予其他输入的值计算属性值。
依赖属性的特点:节约内存和支持多个提供对象。
附加属性:可以被有效的添加到任何对象中,附加属性属于某个类,但是却可以在另外一个类中使用。
附加属性的特点:用于非定义该属性的类。
属性设置的几种方式:
(1)使用属性语法
(2)使用属性元素语法
(3)使用内容元素语法
(4)使用集合语法
五、路由事件
路由事件一(逻辑树):逻辑树就是描述WPF界面元素的实际构成,它是由程序在XAML中所有的UI元素组成。最显著的特点就是由布局控件、或者其他常用的控件组成。
路由事件二(可视树):可视树是由界面上可见的元素构成的,这些元素主要是由从Visual类中派生出来的类。
六、触发器
有三种基本类型的WPF触发器:属性触发器、数据触发器以及事件触发器
触发器Triggers有三种:
1.属性触发器Trigger(属性)
2.事件触发器EventTrigger(事件)
3.数据触发器DaraTrigger(数据)
七、动画:Animation
WPF动画使用三种方法:线性插值、关键帧和路径。
(1)7个"类型名+Animation类"这些类使用插值动画。
(2)22个"类型名+AnimationUsingKeyFrames"这些类使用关键帧动画。
(3)3个"类型名+AnimationUsingPath"类这类使用基于路径的动画。
八、故事版:storyboard
WPF动画通过一组动画类表示,使用少数几个属性设置相关信息,如开始值、结束值以及持续时间。故事板是增强的时间线,可用来分组多个动画,而且具有控制动画播放的能力—暂停、停止以及播放位置。
故事板:故事板是BeginAnimation()方法的XAML等价物,通过故事板将动画指定到合适的元素和属性。
事件触发器:事件触发器响应属性变化或事件,并控制故事板。
可以在以下4个位置定义事件触发器:
(1)在样式中(Style.Triggers集合)。
(2)在数据模板中(DataTemplate.Triggers集合)。
(3)在控件模板中(ControlTemplate.Triggers集合)。
(4)直接在元素中定义事件触发器(FrameworkElement.Triggers集合)。
九、资源
资源分为三种:
- Static Resource – 静态资源
- Dynamic Resource – 动态资源
- Resource Dictionary –资源字典
十.WPF模板
控件模板:ControlTemplate和ItemsPanelTemplate(可以自己定义,重写控件)。
注意:样式Style只能改变控件的已有属性值
数据模板:DataTemplate(虽然某数据是一定的,但我们可以做到让它的表现方式多种多样)。