1.什么是WPF

WPF(Windows Presentation Foundation)是一个基于.net平台的c/s客户端,利用矢量的呈现引擎的UI框架。

优势:

WPF最大优势是可以快速构建项目从而达到缩短项目周期的目的,深受很多中小型企业欢迎,尤其在医疗、工业、金融、硬件、物流、管理系统(ERP)等行业领域。

前景:

近几年随着工业化的进展,国内一些企业的工业系统或上位机系统,也逐渐从使用MFC、QT等C++平台,转向了.NET平台,WPF的占比也越来越高。

2.功能

WPF提供Extensible Application Markup Language (XAML)、控件、数据绑定、布局、二维和三维图形、动画、样式、模板、文档、媒体、文本和版式等丰富的功能。

2.1 XAML

XAML(Extensible Application Markup Language)可扩展应用程序标记语言,用于扩展和定位的语法来定义和程序逻辑分离的用户界面,简化编程式上的用户创建过程。

下面是一个包含按钮的窗口的例子:

XAML使用Window元素定义窗口,使用Window 元素的 Title 特性指定窗口的标题栏文本。

<Window
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    Title="Window with Button"
    Width="250" Height="100">

  <Button Name="button">按钮</Button>

</Window>

2.2 WPF 控件

FlowDocumentScrollViewerStickyNoteControl

GridSplitterGroupBoxPanelResizeGripSeparatorScrollBarScrollViewer

StackPanelThumbViewboxVirtualizingStackPanelWindowWrapPanel

2.3 布局

  • Canvas:子控件提供其自己的布局。
  • DockPanel:子控件与面板的边缘对齐。
  • Grid:子控件由行和列定位。
  • StackPanel:子控件垂直或水平堆叠。
  • VirtualizingStackPanel:子控件在水平或垂直的行上虚拟化并排列。
  • WrapPanel:当当前行上没有足够的空间时,子控件按从左到右的顺序放置并包装到下一行。

2.4 数据绑定

数据和应用程序UI上的控件绑定起来,数据的变化会自动更新界面所看到的内容。




wordpress幻灯片素材 wpf ppt_wordpress幻灯片素材


根据数据流的方向,把数据绑定分为以下几种:

OneWay:仅当源属性发生更改时更新目标属性。

OneWayToSource:在目标属性更改时更新源属性。

OneTime:仅当应用程序启动时或 DataContext 进行更改时更新目标属性。

TwoWay:无论是目标属性还是源属性,只要发生了更改,TwoWay 就会更新目标属性或源属性。

Default:模式根据实际情况来定,如果是可编辑的就是TwoWay,只读的就是OneWay.

2.5 二维与三维图

WPF 提供一个常用矢量绘制的二维形状库,包括视觉效果,如渐变、位图、绘图、用视频绘画、旋转、缩放和倾斜,可以创建可直接绘制、用作画笔或用于剪辑其他形状和控件的自定义形状。

WPF提供了根据应用需求绘制,转换和生成3D图形的功能。它不支持全面的3D游戏开发,但是可以创建3D图形。

2.6 动画

WPF提供了丰富的动画支持,大部分的动画都可以直接通过XAML来呈现,创建动画有故事版、CompositionTarget和DispachTime三种类型。

故事版:该动画适合创建简单的对象位移及直接性质的属性更改。

CompositionTarget:这种动画适合全局属性的时时更改,例如NPC以及地图等全体性的相对位移及属性更改时就要用到它了。

DispachTime:这种动画适合运用在Spirit(角色)的个人动画中,例如角色的移动,战斗等动作。

2.7 样式

WPF引入了样式,对于XAML来说引入的样式就像CSS对HTML的作用;样式是修改View(窗体、控件)样式的主要方式,其作用更改控件的外观。

在StackPanel的资源里定义一个Style。TargetType属性指定样式范围内是StackPanel内的所有TextBlock控件,两个Setter元素用于设置目标控件的特定属性,在本例中为Foreground和FontSize属性。

<Window x:Class="WpfTutorialSamples.Styles.SimpleStyleSample"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="SimpleStyleSample" Height="200" Width="250">
    <StackPanel Margin="10">
        <StackPanel.Resources>
            <Style TargetType="TextBlock">
                <Setter Property="Foreground" Value="Gray" />
                <Setter Property="FontSize" Value="24" />
            </Style>
        </StackPanel.Resources>
        <TextBlock>Header 1</TextBlock>
        <TextBlock>Header 2</TextBlock>
        <TextBlock Foreground="Blue">Header 3</TextBlock>
    </StackPanel>
</Window>


wordpress幻灯片素材 wpf ppt_控件_02


2.8 模板

模板应用在View层,它的作用是修改控件的样式、交互、数据展示。

模板主要分为DataTemplate 和 ControlTemplate 两种:

ControlTemplate它决定了控件样子,并开发者可以在原有的控件上扩展内部逻辑。

DataTemplate是数据内容的展示方式,例如:文本还是直观的图形就由它来决定了。