Windows Presentation Foundation(WPF)是一种演示框架,可用于开发以下类型的应用程序:
独立应用程序(传统样式的 Windows 应用程序,作为安装到客户端计算机并从其运行的可执行程序集) 。
XAML 浏览器应用程序(XBAP)(由作为可执行程序集生成的导航页和由 Web 浏览器托管的应用程序(如 Microsoft Internet Explorer 或 Mozilla Firefox)组成)。
自定义控件库(包含可重用控件的非可执行程序集)。
类库(包含可重用类的非可执行程序集)。
注释
强烈建议不要在 Windows 服务中使用 WPF 类型。 如果你尝试在 Windows 服务中使用这些功能,它们可能无法按预期工作。
若要生成这组应用程序,WPF 将实现一系列服务。 本主题概述了这些服务以及查找详细信息的位置。
应用程序管理
可执行 WPF 应用程序通常需要一组核心功能,其中包括:
创建和管理常见的应用程序基础结构(包括创建入口点方法和用于接收系统和输入消息的 Windows 消息循环)。
跟踪应用程序生存期并与之交互。
检索和处理命令行参数。
共享应用程序范围属性和 UI 资源。
检测和处理未经处理的异常。
返回退出代码。
管理独立应用程序中的窗口。
跟踪 XAML 浏览器应用程序 (XBAP) 和具有导航窗口及框架的独立应用程序中的导航。
警告
XBAP 要求旧版浏览器运行,例如 Internet Explorer 和旧版 Firefox。 这些较旧的浏览器通常在 Windows 10 和 Windows 11 上不受支持。 由于安全风险,新式浏览器不再支持 XBAP 应用所需的技术。 不再支持启用 XBAP 的插件。 有关详细信息,请参阅 有关 WPF 浏览器托管应用程序(XBAP)的常见问题解答。
这些功能通过您使用应用程序定义添加到应用程序中的 Application 类来实现。
有关详细信息,请参阅 应用程序管理概述。
WPF 应用程序资源、内容和数据文件
WPF 为嵌入式资源扩展了 Microsoft .NET Framework 中的核心支持,并支持三种类型的非可执行数据文件:资源、内容和数据。 有关详细信息,请参阅 WPF 应用程序资源、内容和数据文件。
支持 WPF 非可执行数据文件的关键组件是能够使用唯一 URI 识别和加载这些文件。 有关详细信息,请参阅 WPF 中的 Pack URI。
窗口和对话框
用户通过窗口与 WPF 独立应用程序交互。 窗口的目的是托管应用程序内容并公开应用程序功能,这些功能通常允许用户与内容进行交互。 在 WPF 中,窗口由 Window 类封装,并支持:
创建和显示窗口。
建立所有者/被拥有的窗口之间的关系。
配置窗口外观(例如,大小、位置、图标、标题栏文本、边框)。
跟踪窗口的生命周期并与之交互。
有关详细信息,请参阅 WPF Windows 概述。
Window 支持创建称为对话框的特殊类型的窗口的功能。 可以创建模式和无模式对话框类型。
为方便起见,以及应用程序可重用性和一致的用户体验的好处,WPF 公开了三个常见的 Windows 对话框:OpenFileDialog和SaveFileDialogPrintDialog。
消息框是一种特殊类型的对话框,用于向用户显示重要文本信息,并询问简单的“是/否/确定/取消”问题。 可以使用 MessageBox 该类创建和显示消息框。
有关详细信息,请参阅 对话框概述。
导航
WPF 支持使用页面(Page)和超链接()的 Web 样式导航。Hyperlink 可以通过多种方法实现导航,其中包括以下内容:
Web 浏览器中托管的独立页面。
编译成在 Web 浏览器中托管的 XBAP 的页面。
编译为独立应用程序并由导航窗口 (NavigationWindow) 承载的页面。
由框架(Frame)承载的页面,该页面可以托管在独立页面中,或者编译为 XBAP 或独立应用程序的页面。
为了便于导航,WPF 实现以下内容:
NavigationService是一个用于处理导航请求的共享导航引擎,Frame、NavigationWindow和XBAP都使用它以支持应用程序内导航。
用于启动导航的导航方法。
用于跟踪和与整个导航过程生命周期交互的导航事件。
使用日志保存后退和前进导航,可以对其进行检查和操作。
有关信息,请参阅 导航概述。
WPF 还支持称为结构化导航的特殊类型的导航。 结构化导航可用于调用一个或多个页面,以与调用函数一致的结构化且可预测的方式返回数据。 此功能取决于类 PageFunction<T> ,该类在 结构化导航概述中进行了进一步介绍。 PageFunction<T> 还有助于简化复杂导航拓扑的创建,如 导航拓扑概述中所述。
托管
XBAP 可以托管在 Microsoft Internet Explorer 或 Firefox 中。 每个托管模型都有自己的一组注意事项和约束,这些注意事项和约束包含在 托管中。
生成和部署
尽管可以使用命令行编译器从命令提示符生成简单的 WPF 应用程序,但 WPF 与 Visual Studio 集成,以提供简化开发和生成过程的其他支持。 有关详细信息,请参阅 生成 WPF 应用程序。
根据生成的应用程序类型,有一个或多个部署选项可供选择。 有关详细信息,请参阅 部署 WPF 应用程序。
相关主题
标题 | DESCRIPTION |
---|---|
应用程序管理概述 | 提供 Application 类的概述,包括管理应用程序生命周期、窗口、应用程序资源和导航。 |
WPF 中的窗口 | 提供有关在应用程序中管理窗口的详细信息,包括如何使用 Window 类和对话框。 |
导航概述 | 概述如何管理应用程序页面之间的导航。 |
托管 | 概述 XAML 浏览器应用程序(XBAP)。 |
构建和部署 | 介绍如何生成和部署 WPF 应用程序。 |
Visual Studio 中的 WPF 简介 | 介绍 WPF 的主要功能。 |
演练:我的第一个 WPF 桌面应用程序 | 演示如何使用页面导航、布局、控件、图像、样式和绑定创建 WPF 应用程序的演练。 |