应用程序开发

Windows Presentation Foundation(WPF)是一种演示框架,可用于开发以下类型的应用程序:

  • 独立应用程序(传统样式的 Windows 应用程序,作为安装到客户端计算机并从其运行的可执行程序集) 。

  • XAML 浏览器应用程序(XBAP)(由作为可执行程序集生成的导航页和由 Web 浏览器托管的应用程序(如 Microsoft Internet Explorer 或 Mozilla Firefox)组成)。

  • 自定义控件库(包含可重用控件的非可执行程序集)。

  • 类库(包含可重用类的非可执行程序集)。

注意

强烈建议不要在 Windows 服务中使用 WPF 类型。 如果你尝试在 Windows 服务中使用这些功能,它们可能无法按预期工作。

若要生成这组应用程序,WPF 将实现一系列服务。 本主题概述了这些服务以及查找详细信息的位置。

应用程序管理

可执行 WPF 应用程序通常需要一组核心功能,其中包括:

  • 创建和管理常见的应用程序基础结构(包括创建入口点方法和用于接收系统和输入消息的 Windows 消息循环)。

  • 跟踪应用程序生存期并与之交互。

  • 检索和处理命令行参数。

  • 共享应用程序范围属性和 UI 资源。

  • 检测和处理未经处理的异常。

  • 返回退出代码。

  • 管理独立应用程序中的窗口。

  • 在 XAML 浏览器应用程序 (XBAP) 中跟踪导航,以及在具有导航窗口和框架的独立应用程序中进行跟踪。

这些功能由 Application 类实现,您可以通过使用 添加的应用程序定义将其添加到您的应用程序中。

有关详细信息,请参阅 应用程序管理概述

WPF 应用程序资源、内容和数据文件

WPF 为嵌入式资源扩展了 Microsoft .NET Framework 中的核心支持,并支持三种类型的非可执行数据文件:资源、内容和数据。 有关详细信息,请参阅 WPF 应用程序资源、内容和数据文件

支持 WPF 非可执行数据文件的关键组件是能够使用唯一 URI 识别和加载这些文件。 有关详细信息,请参阅 WPF中的 包 URI。

Windows 窗口和对话框

用户通过窗口与 WPF 独立应用程序交互。 窗口的目的是托管应用程序内容并公开应用程序功能,这些功能通常允许用户与内容进行交互。 在 WPF 中,窗口由 Window 类封装,该类支持:

  • 创建和显示窗口。

  • 建立所有者/拥有的窗口关系。

  • 配置窗口外观(例如,大小、位置、图标、标题栏文本、边框)。

  • 跟踪窗口的生命周期并与之交互。

有关详细信息,请参阅 WPF Windows 概述

Window 支持创建称为对话框的特殊类型的窗口。 可以创建模态和无模态的对话框类型。

为方便起见,以及应用程序可重用性和一致的用户体验的好处,WPF 公开了三个常见的 Windows 对话框:OpenFileDialogSaveFileDialogPrintDialog

消息框是一种特殊类型的对话框,用于向用户显示重要文本信息,并询问简单的“是/否/确定/取消”问题。 使用 MessageBox 类创建和显示消息框。

有关详细信息,请参阅 对话框概述

WPF 支持使用页面(Page)和超链接(Hyperlink)的 Web 样式导航。 可以通过多种方法实现导航,其中包括以下内容:

  • Web 浏览器中托管的独立页面。

  • 编译成在 Web 浏览器中托管的 XBAP 的页面。

  • 已编译为独立应用程序并由导航窗口(NavigationWindow)托管的页面。

  • 由框架(Frame)托管的页面,可以托管在单独的页面中,或编译为 XBAP 或独立应用程序中的页面。

为了便于导航,WPF 实现以下内容:

  • NavigationService,是一个共享的导航引擎,用于处理 FrameNavigationWindow和 XBAP 的导航请求,以支持在应用程序内导航。

  • 用于启动导航的导航方法。

  • 用于跟踪导航的生命周期并与之互动的导航事件。

  • 使用日志用于记住后退和向前导航,并且可以对其进行检查和操作。

有关信息,请参阅 导航概述

WPF 还支持称为结构化导航的特殊类型的导航。 结构化导航可用于调用一个或多个页面,以与调用函数一致的结构化且可预测的方式返回数据。 此功能取决于 PageFunction<T> 类,结构化导航概述对此进行了进一步介绍。 PageFunction<T> 还有助于简化复杂导航拓扑的创建,导航拓扑概述中所述。

托管

XBAP 可以托管在 Microsoft Internet Explorer 或 Firefox 中。 每个托管模型都有其自身的一些注意事项和限制条件,这些都涵盖在托管中。

构建和部署

尽管可以使用命令行编译器从命令提示符生成简单的 WPF 应用程序,但 WPF 与 Visual Studio 集成,以提供简化开发和生成过程的其他支持。 有关详细信息,请参阅 生成 WPF 应用程序

根据生成的应用程序类型,有一个或多个部署选项可供选择。 有关详细信息,请参阅 部署 WPF 应用程序

标题 描述
应用程序管理概述 概述 Application 类,包括管理应用程序生存期、窗口、应用程序资源和导航。
WPF 中的 Windows 提供有关在应用程序中管理窗口的详细信息,包括如何使用 Window 类和对话框。
导航概述 概述如何管理应用程序页面之间的导航。
托管 提供有关 XAML 浏览器应用程序(XBAP)的概述。
构建和部署 介绍如何生成和部署 WPF 应用程序。
Visual Studio 中的 WPF 简介 介绍 WPF 的主要功能。
演练:我的第一个 WPF 桌面应用 演示如何使用页面导航、布局、控件、图像、样式和绑定创建 WPF 应用程序的演练。