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 的功能

WPF 的功能
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中 Archi质地
WPF中 Archi质地

WPF 体系结构的组件

  • 演示框架:帮助您创建顶级元素,如控件、样式、布局、窗口等。
  • 演示核心:它包含基本类型,例如 UIElement、Visual,所有控件和形状均在 PresentationFramework.dll 中派生。
  • CLR:它通过提供以下功能使开发过程富有成效 内存管理、错误处理等等
  • 米尔科: Milcore 是非托管代码的一部分,可与 DirectX 紧密集成。
  • 的DirectX: 它是允许渲染 WPF 图形的低级 API。DirectX 会与驱动程序交互并渲染内容。
  • 用户 32: 它是许多程序广泛使用的核心 API。它管理内存和进程分离。User32 可帮助您决定将哪个元素放置在屏幕上的哪个位置。
  • 内核: 输入源自内核模式设备驱动程序上的信号,并被路由到正确的进程,并通过连接 Windows 内核和User32。

WPF 安装

参考此链接安装WPF https://www.guru99.com/download-install-visual-studio.html

接下来在本 WPF 应用程序教程中,我们将构建我们的第一个 WPF。

如何创建您的第一个 WPF 应用程序?

在这个WPF示例中,我们将开发一个基本的WPF应用程序。因此,让我们按照下面WPF应用程序示例中给出的步骤开始简单的实现。

步骤1) 在 Visual Studio 中,转到文件 > 项目

创建第一个 WPF 应用程序

步骤2) 在新项目窗口中

  1. 选择 WPF 应用
  2. 输入名称“MyWPF”
  3. 单击确定

创建第一个 WPF 应用程序

步骤3) Visual Studio 默认创建两个文件

  • XAML 文件 (MainWindow.xaml)
  • CS 文件 (MainWindow.xaml.cs)

创建第一个 WPF 应用程序

MainWindow.xaml 有

  1. 设计窗口
  2. XAML 文件

创建第一个 WPF 应用程序

在 XAML 窗口中,以下标记被默认写入

创建第一个 WPF 应用程序

默认情况下,Grid 是第一个元素。

MainWindow.xaml.cs包含XAML设计文件背后的相应代码

创建第一个 WPF 应用程序

步骤4) 在工具箱中,

  1. 拖拽文本Box 设计窗口的元素
  2. 一段文字Box 将出现在设计窗口中
  3. 您将看到 Text 的 XAML 代码Box 添加

创建第一个 WPF 应用程序

步骤5) 将文本更改为“第一个 WPF 程序”。

创建第一个 WPF 应用程序

步骤6) 单击开始按钮

创建第一个 WPF 应用程序

步骤7) 您将在输出中看到一个窗口

创建第一个 WPF 应用程序

恭喜!您已经设计并创建了您的第一个 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 页面可以共存于同一个应用程序中