1.Application
Application 是封装 WPF 特定功能的类,包括:
- 应用程序生存期: Activated,
Current,
Deactivated,
DispatcherUnhandledException,
Exit,
Run,
SessionEnding,
Shutdown,
ShutdownMode,
Startup。 - 应用程序范围的窗口、属性和资源管理:
FindResource,
GetContentStream,
GetResourceStream,
LoadComponent,
MainWindow,
Properties,
Resources,
StartupUri,
Windows。 - 命令行参数和退出代码处理:
Application.Startup,
Application.Exit,
Application.Shutdown。 - 导航: FragmentNavigation,
LoadCompleted,
Navigated,
Navigating,
NavigationProgress,
NavigationStopped,
NavigationFailed,
SetCookie,
GetCookie。
Application
实现模式提供对窗口、属性和资源范围服务的共享访问。 因此,只有
Application 类的一个实例。每 AppDomain创建。
使用标记、标记和代码隐藏或代码,可以实现 Application 。
如果 Application 实现与标记,则必须配置代码或标记和代码隐藏中,标记文件作为 Microsoft Build Engine (MSBuild) ApplicationDefinition 项目。
说明 |
||||||||
---|---|---|---|---|---|---|---|---|
独立应用程序不需要一 Application 对象;可以实现自定义 static 入口点打开窗口,而无需创建 Application实例的方法 (Main)。 但是, XAML 浏览器应用程序 (XBAP) 需要一 Application 对象。 示例 C# using System; // STAThread using System.Windows; // Application namespace SDKSample { public class AppCode : Application { // Entry point method [STAThread] public static void Main() { AppCode app = new AppCode(); app.Run(); } } } XAML <Application xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" x:Class="SDKSample.App" /> 2.Page Page 封装一页可导航的内容,并具有以下关键成员:
可以使用标记、标记和代码隐藏或者代码来定义页。
页可以通过 Window、NavigationWindow、Frame
一个应用程序通常具有两个或更多页,可以使用以下机制在这些页之间导航:
有关使用页函数 (PageFunction<T>) 的结构化导航,请参见结构化导航概述和导航拓扑概述。 可通过控件的默认样式设置此控件的依赖项属性。 示例 XAML <Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" Title="Markup Page"> <!-- Page Content Goes Here --> </Page> C# using System.Windows.Controls; public class CodePage : Page { public CodePage() {} } 3.NavigationWindow NavigationWindow 派生自 内容可以是任何 .NET Framework 对象或 HTML 文件。 通过用所需内容的 URI 来设置 通过 URI 导航到内容时,NavigationWindow 将返回一个包含该内容的对象。
或者,也可以使用接受对象的 导航的生存期可通过以下事件进行跟踪:
每次发生导航时并不会引发所有事件;引发的事件集由所发生的导航类型(内容或内容片段)以及导航的完成方式(取消、停止或失败)确定。 下图阐释了这些事件的激发顺序: 在导航过程中或之后,NavigationWindow 将提供有关导航目标内容的信息,其中包括导航目标内容的 URI (Source)、当前内容的 导航到内容后,NavigationWindow 会将该导航记录为导航历史记录中的一个条目。 第一次从一段内容导航到另一段内容时,NavigationWindow 会自动显示一个导航 UI,使用户能够在导航历史记录中前、后导航。 通过调用 NavigationWindow 通过使用 NavigationWindow 内容模型: 自定义 NavigationWindow 控件。若要对多个 可通过控件的默认样式设置此控件的依赖项属性。
Frame 是能够定位到并显示内容的内容控件。
内容可以是任何类型的 .NET Framework 对象和 HTML 文件。 内容可以导航到通过设置与 URI 的 Source 属性所需内容的。 如果内容导航到由 URI时, Frame 返回包含内容的对象。 导航的生存期可以通过以下活动来跟踪:
不是导航发生的所有事件都引发;引发事件集的方式取决于发生的类型的导航 (内容或内容片段),这个导航完成 (取消,停止或失败)。 下图演示了这些事件将引发顺序: 在导航之前或之后, Frame 提供有关导航,包括导航的内容的内容的信息 (Source) 如果内容导航到时, Frame 记录中的导航作为在导航历史记录中的项。 第一次目录一个导航到目录中的另一部分, Frame 自动显示允许用户导航和在导航历史记录向前导航 UI 。 默认情况下, Frame 将使用自己的导航历史记录,仅当找不到父浏览器 (NavigationWindow, 导航历史记录中向后最近项中调用 RemoveBackEntry移除。 Frame 使用 AddBackEntry,还可以确保多个设置单页的实例的状态。 自定义 frame 控件若要应用相同的属性设置应用于多个 Frame 控件,请使用 此控件的依赖项属性可以由控件的默认样式设置。
|
关于Application、Page、NavigationWindow和Frame的类