WPF基础教程
` 提示:WPF基础教程
例如:本章是WPF基础教程快速入门概览
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 特性指定窗⼝的标题栏⽂本。
2.2 WPF 控件
按钮: Button 和 RepeatButton。
数据显示:DataGrid、ListView 和 TreeView。
⽇期显示和选项: Calendar 和 DatePicker。
对话框: OpenFileDialog、 PrintDialog和 SaveFileDialog。
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
Title="Window with Button"
Width="250" Height="100">
<Button Name="button">按钮</Button>
</Window>
数字墨迹: InkCanvas 和 InkPresenter。
⽂档: DocumentViewer、 FlowDocumentPageViewer、 FlowDocumentReader、
FlowDocumentScrollViewer和 StickyNoteControl。
输⼊: TextBox、 RichTextBox和 PasswordBox。
布
局: Border、 BulletDecorator、 Canvas、 DockPanel、 Expander、 Grid、 GridVie
w、
GridSplitter、 GroupBox、 Panel、 ResizeGrip、 Separator、 ScrollBar、 ScrollViewer、
StackPanel、 Thumb、 Viewbox、 VirtualizingStackPanel、 Window和 WrapPanel。
媒体: Image、 MediaElement和 SoundPlayerAction。
菜单: ContextMenu、 Menu和 ToolBar。
导航: Frame、 Hyperlink、 Page、 NavigationWindow和 TabControl。
选项: CheckBox、 ComboBox、 ListBox、 RadioButton和 Slider。
⽤户信息: AccessText、 Label、 Popup、 ProgressBar、 StatusBar、 TextBlock
和 ToolTip。
2.3 布局
Canvas:⼦控件提供其⾃⼰的布局。
DockPanel:⼦控件与⾯板的边缘对⻬。
Grid:⼦控件由⾏和列定位。
StackPanel:⼦控件垂直或⽔平堆叠。
VirtualizingStackPanel:⼦控件在⽔平或垂直的⾏上虚拟化并排列。
WrapPanel:当当前⾏上没有⾜够的空间时,⼦控件按从左到右的顺序放置并包装到下⼀⾏。
2.4 数据绑定
数据和应⽤程序UI上的控件绑定起来,数据的变化会⾃动更新界⾯所看到的内容。
2023/10/8 10:17 WPF概述_夜飞鼠的博客-CSDN博客
https://blog.csdn.net/nmmking/article/details/129384195 3/4
根据数据流的⽅向,把数据绑定分为以下⼏种:
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属性。
2.8 模板
模板应⽤在View层,它的作⽤是修改控件的样式、交互、数据展示。
模板主要分为DataTemplate 和 ControlTemplate 两种:
ControlTemplate它决定了控件样⼦,并开发者可以在原有的控件上扩展内部逻辑。
DataTemplate是数据内容的展示⽅式,例如:⽂本还是直观的图形就由它来决定了。
<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>