WPF 初学者教程:如何创建应用程序 [示例]
什么是 WPF?
WPF中 是一个构建框架 Windows 应用程序允许用户开发具有 3D 动画和丰富色彩的丰富用户界面,同时减少代码复杂性。它是一种基于矢量的渲染引擎,使用现代显卡的硬件加速,使 UI 更快且高度可扩展。WPF 代表 Windows 企业介绍 Foundation.
WPF 可以看作是 WinForms 的进化。它为 Windows. 它可以轻松分离 UI 和业务逻辑。
WPF 应用程序可以作为独立的桌面程序部署在您的系统中,也可以作为网站中的嵌入对象托管。
为什么选择 WPF?
使用 WPF 平台的原因有很多,其中最突出的是:
- 如果您需要处理各种媒体类型,这是一个理想的平台
- WPF 允许您创建带皮肤的用户界面。当您需要加载 UI 的一部分或想要绑定 XML 数据时,它也会为您提供帮助
- 它允许您利用大型 .NET 类库,因为它建立在 .NET 技术
- 分辨率独立性,因此使用 WMF 开发的应用程序可以在移动设备或 20 英寸显示器上运行
- WPF 是基于 DirectX 而不是 WinAPI 构建的。它提供了客户端计算机的图形系统。因此,提供了更强大的图形渲染能力
- 支持流文档模型,可实现“桌面发布”版面质量
- 外观和行为是松散耦合的。这使得设计师和开发人员可以在两个独立的模型上工作
- 在 WMF 框架中,您可以以图形方式在简单的 XML 文档上设计工具,而不是解析代码
- 允许您使用硬件加速来绘制 GUI,以获得更好的性能
WPF 的历史
Windows 1.0 是第一个 GUI 环境 Microsoft。它作为 DOS 的顶层工作,依靠 GDI 和 USER 系统实现图形和用户界面。
DirectX 于 1995 年推出,是一种高性能图形系统。它针对游戏和其他图形相关环境。多年来,Directx9 发布了多个版本,提供了可与 mange.Net 代码一起使用的库。
WPF 版本 | 发行年份 | .Net 版本 | Visual Studio 版本 | 产品优势 |
---|---|---|---|---|
3.0 | 2006 | 3.0 | 无 | 初始发行。 不过WPF开发可以用VS 2005来进行。 |
3.5 | 2007 | 3.5 | 对比 2008 | 修改和改进: 应用程序模型、绑定、控件、文档、注释和 3-D UI 元素。 |
3.5 SP1 | 2008 | 3.5 SP1 | 无 | 原生启动画面支持。新的 Web 浏览器控件、DirectX 像素着色器支持。 |
4.0 | 2010 | 4.0 | 对比 2010 | 新控件:日历、DataGrid、DatePicker、多点触控和操作 |
4.5 | 2012 | 4.5 | 对比 2012 | 更快的设置时间和改进的位图效果性能。新控件:日历。DataGrid、DatePicker。 多点触控和操控 |
4.5.1 | 2013 | 4.5.1 | 对比 2013 | 新的功能区控件 新的INotifyDataErrorlnfo接口 |
4.5.2 | 2014 | 4.5.2 | NA | 没有重大变化 没有重大变化 |
4.6 | 2015 | 4.6 | 对比 2015 | 透明子窗口支持 HDPI 和触摸改进 |
WPF 5.0.6 的最新稳定版本于 2021 年 XNUMX 月发布。
WPF 的功能

- 文件和打印
- 安全性、可访问性和本地化
- 提供与 Windows 表单控件
- Direct3D 用于性能至关重要的图形应用程序
- 使用显卡硬件进行渲染
- 基于矢量的图形允许您扩展应用程序而不会损失质量
- WPF 支持浮点逻辑像素系统和 32 位 ARGB 颜色
- 重新定义样式和控件模板
- 从复合字体构建国际字体
- WPF 文本渲染可帮助您利用 ClearType 技术
- 允许您使用视频内存中预渲染文本的缓存技术
- 针对每个控制采用基于资源的方法
- 演示计时器由 WPF 初始化和管理
- 还支持视频和动画之间的关系
- 在 WPF 中,样式是一组属性,应用于用于视觉呈现的内容
- WPF 中的模板可帮助您更改文档的 UI
- 命令是事件的更抽象和松散耦合的版本
- WPF 对命令的支持减少了我们需要编写的代码量
接下来是这个 WPF C# 教程,我们将了解 WPF 核心类型和基础设施。
WPF 核心类型和基础结构WPF Core Types and Infrastructures
WPF 中的类分为四种不同类型:
- 用户界面元素
- 框架元素
- 内容元素
- 框架内容元素
这些类称为基元素类。它为组成用户界面的模型提供了基础。
WPF 用户界面由以树状层次结构组装的元素组成。它被称为元素树。元素树是一种直观的用户界面布局方式。它是一种允许您获得强大 UI 服务功能的结构。
XAML
可扩展应用程序标记语言(称为“XAML”或“zammel”)是一种定义用户界面的声明性方式。
这是一个简单按钮的 XAML 定义:
<Button FontSize="16" HorizontalAlignment="Center" VerticalAlignment="Center" > Say Hello Guru99</Button>
使用XAML语言的优点:
- XAML 将前端外观与后端逻辑分离
- XAML 是呈现用户界面最简单的方法
- XAML 与工具有效协作
Controls
WPF 框架支持许多有用的控件,例如:
- 编辑文本等控件Box, 查看Box, 单选按钮
- 列表控件,例如 ListBox、列表视图、树视图
- 用户信息,例如 Label、WPF ProgressBar、ToolTip
- 菜单、按钮和工具栏等操作
- Border、WPF Image 和 Viewbox 等外观
- 常见的对话框,例如 OpenFileDialog 和 PrintDialog。
- TabContro、ScrollBar 和 Group 等容器Box
- DocPanel、StackPanel 和 Grid 等布局
- 框架和超链接等导航
无需编程,即可使用样式和模板自定义控件的外观。您还可以通过从适当的基类派生新类来创建自定义控件。
外观
WPF 提供了自定义应用程序外观的功能。它允许您设置字体、背景等对象和值。
样式功能可让您标准化整个产品的特定外观。它允许您替换默认外观,同时保留其默认行为。
数据模板允许您控制绑定数据的默认可视化。借助主题,您可以轻松地从操作系统可视化样式。
布局和面板
布局可帮助您正确定位和控制大小。它是为用户编写演示文稿的过程的一部分。WPF 框架简化了布局过程,并提供了更好的 UI 外观适应性。
布局基础结构由各种类提供,包括 1) StackPanel 2) DockPanel 3) WrapPanel 4) Grid 和 5) Canvas
图像
WPF 提供了改进的图形系统,例如
- WPF 使用与设备无关的单位,从而实现分辨率和设备独立性。因此,每个与设备无关的像素都会根据每英寸点数设置系统自动缩放
- WPF 使用 double 代替 float,并支持更广泛的颜色
- WPF 图形引擎的设计方式使其能够充分利用可用的图形硬件
文件和打印
WPF 框架提供三种类型的文档:
- 固定文件: 此类文档支持 WYSIWYG 演讲。
- 流程文件: 允许您根据运行时变量(例如窗口大小和设备分辨率)调整和重新流动内容。
- XPS 文档: 它是一种基于 XML 格式的电子纸分页表示。XPS 是一种开源和跨平台的文档格式。
WPF 可以更好地控制打印系统。它包括远程打印和队列。此外,XPS 文档可以直接打印,而无需将其转换为打印格式。
WPF中 Archi质地
WPF 是 .NET 框架的一部分。它包含托管和非托管代码。下图解释了 WPF 架构的重要组成部分:

WPF 体系结构的组件
- 演示框架:帮助您创建顶级元素,如控件、样式、布局、窗口等。
- 演示核心:它包含基本类型,例如 UIElement、Visual,所有控件和形状均在 PresentationFramework.dll 中派生。
- CLR:它通过提供以下功能使开发过程富有成效 内存管理、错误处理等等
- 米尔科: Milcore 是非托管代码的一部分,可与 DirectX 紧密集成。
- 的DirectX: 它是允许渲染 WPF 图形的低级 API。DirectX 会与驱动程序交互并渲染内容。
- 用户 32: 它是许多程序广泛使用的核心 API。它管理内存和进程分离。User32 可帮助您决定将哪个元素放置在屏幕上的哪个位置。
- 内核: 输入源自内核模式设备驱动程序上的信号,并被路由到正确的进程,并通过连接 Windows 内核和User32。
WPF 安装
接下来在本 WPF 应用程序教程中,我们将构建我们的第一个 WPF。
如何创建您的第一个 WPF 应用程序?
在这个WPF示例中,我们将开发一个基本的WPF应用程序。因此,让我们按照下面WPF应用程序示例中给出的步骤开始简单的实现。
步骤1) 在 Visual Studio 中,转到文件 > 项目
步骤2) 在新项目窗口中
- 选择 WPF 应用
- 输入名称“MyWPF”
- 单击确定
步骤3) Visual Studio 默认创建两个文件
- XAML 文件 (MainWindow.xaml)
- CS 文件 (MainWindow.xaml.cs)
MainWindow.xaml 有
- 设计窗口
- XAML 文件
在 XAML 窗口中,以下标记被默认写入
默认情况下,Grid 是第一个元素。
MainWindow.xaml.cs包含XAML设计文件背后的相应代码
步骤4) 在工具箱中,
- 拖拽文本Box 设计窗口的元素
- 一段文字Box 将出现在设计窗口中
- 您将看到 Text 的 XAML 代码Box 添加
步骤5) 将文本更改为“第一个 WPF 程序”。
步骤6) 单击开始按钮
步骤7) 您将在输出中看到一个窗口
恭喜!您已经设计并创建了您的第一个 WPF 应用程序。接下来在本 WPF 初学者教程中,我们将看到 WPF 和 WinForms 之间的区别。
WPF 与 WinForms
WPF中 | 窗体 |
---|---|
它是一个较新的框架,因此更符合当前标准。 | 它比较古老,因此经过了更多的尝试和测试。 |
它灵活且功能丰富。您无需编码或购买控件即可设计非常丰富的应用程序。 | 功能不太丰富 |
3 的开发者rd 各方控制专注于与 WPF 的兼容性,因为这是未来。 | 有许多第三方控件您可以购买或免费获得。 |
XAML 可让您轻松创建和编辑 GUI。它允许设计师 (XAML) 和程序员 (C#、ASP.net 等) 之间分担工作。 | In Windows 将所有代码集中在一个地方编写。 |
WPF 可以为以下对象创建用户界面 Windows 应用程序和 Web 应用程序,如 Silverlight 和 XBAP。 | 没有这样的支持 |
WPF 的内置控件套件有限 | 收件箱控件非常强大 |
使用 WPF 构建的应用程序类型
- WPF 正在尝试取代 Web 窗体和 Windows 窗体——应用程序可以构建为在浏览器或独立窗口中运行
- Windows 表单和 WPF 页面可以共存于同一个应用程序中
- 您可以开发页面/窗口应用程序
快速指南
- WPF 全称是 Windows 企业介绍 Foundation
- 如果你需要处理各种媒体类型,这是一个理想的平台
- Windows 1.0 是第一个 GUI 环境 Microsoft 它运行在 DOS 上,依赖于 GDI 和 USER 系统
- .NET 中的 WPF 提供与 Windows 表单控件
- WPF 分为四种不同的类型,如 UIElement、FrameworkElement ContentElement 和 FrameworkContentElement
- WPF 架构部分最重要的组件是 PresentationFramework、PresentationCore、CLR、Milcore、DirectX、User32 和 Kernel
- 与 WinForms 相比,WPF 是一个较新的框架,因此更符合当前标准
- Windows 表单和 WPF 页面可以共存于同一个应用程序中