Application 类 (System.Windows)

切换视图:
无脚本视图
.NET Framework 类库
Application 类
此文章由人工翻译。 若要同时查看此页面和原始英文页面的内容,请切换至轻型版视图作为您的查看首选项。

封装 Windows Presentation Foundation (WPF) 应用程序。

继承层次结构

System.Object
  System.Windows.Threading.DispatcherObject
    System.Windows.Application

命名空间:  System.Windows
程序集:  PresentationFramework(在 PresentationFramework.dll 中)
用于 XAML 的 XMLNS:http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation
语法

Visual Basic
Public Class Application _
	Inherits DispatcherObject _
	Implements IQueryAmbient
C#
public class Application : DispatcherObject, 
	IQueryAmbient
Visual C++
public ref class Application : public DispatcherObject, 
	IQueryAmbient
F#
type Application =  
    class
        inherit DispatcherObject
        interface IQueryAmbient
    end
XAML 对象元素用法
<Application .../>

Application 类型公开以下成员。

构造函数

  名称 说明
公共方法 Application 初始化 Application 类的新实例。
页首
属性

  名称 说明
公共属性 静态成员 Current 获取当前 AppDomainApplication 对象。
公共属性 Dispatcher 获取与此 DispatcherObject 关联的 Dispatcher (继承自 DispatcherObject。)
公共属性 MainWindow 获取或设置应用程序的主窗口。
公共属性 Properties 获取应用程序范围属性的集合。
公共属性 静态成员 ResourceAssembly 获取或设置为 WPF 应用程序中的资源提供包uniform resource identifiers (URIs) 的 Assembly
公共属性 Resources 获取或设置应用程序范围资源(如样式和画笔)的集合。
公共属性 ShutdownMode 获取或设置导致调用 Shutdown 方法的条件。
公共属性 StartupUri 获取或设置一个在应用程序启动时自动显示的 UI。
公共属性 Windows 获取应用程序中的实例化窗口。
页首
方法

  名称 说明
公共方法 CheckAccess 确定调用线程是否可以访问此 DispatcherObject (继承自 DispatcherObject。)
公共方法 Equals(Object) 确定指定的 Object 是否等于当前的 Object (继承自 Object。)
受保护的方法 Finalize 允许对象在“垃圾回收”回收之前尝试释放资源并执行其他清理操作。 (继承自 Object。)
公共方法 FindResource 使用指定键搜索user interface (UI) 资源(如 StyleBrush),并在未找到所请求的资源时引发异常(请参见资源概述)。
公共方法 静态成员 GetContentStream 返回位于指定 Uri 处的内容数据文件的资源流(请参见 WPF 应用程序资源、内容和数据文件)。
公共方法 静态成员 GetCookie 为由 Uri 指定的位置检索 Cookie。
公共方法 GetHashCode 用作特定类型的哈希函数。 (继承自 Object。)
公共方法 静态成员 GetRemoteStream 返回位于指定 Uri 处的源站点数据文件的资源流(请参见 WPF 应用程序资源、内容和数据文件)。
公共方法 静态成员 GetResourceStream 返回位于指定 Uri 处的资源数据文件的资源流(请参见 WPF 应用程序资源、内容和数据文件)。
公共方法 GetType 获取当前实例的 Type (继承自 Object。)
公共方法 静态成员 LoadComponent(Uri) 加载位于指定uniform resource identifier (URI) 处的 XAML 文件,并将其转换为由该 XAML 文件的根元素指定的对象的实例。
公共方法 静态成员 LoadComponent(Object, Uri) 加载位于指定uniform resource identifier (URI) 处的 XAML 文件,并将其转换为由该 XAML 文件的根元素指定的对象的实例。
受保护的方法 MemberwiseClone 创建当前 Object 的浅表副本。 (继承自 Object。)
受保护的方法 OnActivated 引发 Activated 事件。
受保护的方法 OnDeactivated 引发 Deactivated 事件。
受保护的方法 OnExit 引发 Exit 事件。
受保护的方法 OnFragmentNavigation 引发 FragmentNavigation 事件。
受保护的方法 OnLoadCompleted 引发 LoadCompleted 事件。
受保护的方法 OnNavigated 引发 Navigated 事件。
受保护的方法 OnNavigating 引发 Navigating 事件。
受保护的方法 OnNavigationFailed 引发 NavigationFailed 事件。
受保护的方法 OnNavigationProgress 引发 NavigationProgress 事件。
受保护的方法 OnNavigationStopped 引发 NavigationStopped 事件。
受保护的方法 OnSessionEnding 引发 SessionEnding 事件。
受保护的方法 OnStartup 引发 Startup 事件。
公共方法 Run 启动一个 Windows Presentation Foundation (WPF) 应用程序。
公共方法 Run(Window) 启动一个 Windows Presentation Foundation (WPF) 应用程序并打开指定窗口。
公共方法 静态成员 SetCookie 为由 Uri 指定的位置创建一个 Cookie。
公共方法 Shutdown 关闭一个应用程序。
公共方法 Shutdown(Int32) 关闭将指定退出代码返回给操作系统的应用程序。
公共方法 ToString 返回表示当前对象的字符串。 (继承自 Object。)
公共方法 TryFindResource 搜索指定资源。
公共方法 VerifyAccess 强制调用线程具有此 DispatcherObject 的访问权限。 (继承自 DispatcherObject。)
页首
事件

  名称 说明
公共事件 Activated 当应用程序成为前台应用程序时发生。
公共事件 Deactivated 当应用程序停止作为前台应用程序时发生。
公共事件 DispatcherUnhandledException 在异常由应用程序引发但未进行处理时发生。
公共事件 Exit 恰好在应用程序关闭之前发生,且无法取消。
公共事件 FragmentNavigation 当应用程序中的导航器开始导航至某个内容片断时发生,如果所需片段位于当前内容中,则导航会立即发生;或者,如果所需片段位于不同内容中,则导航会在加载了源 XAML 内容之后发生。
公共事件 LoadCompleted 在已经加载、分析并开始呈现应用程序中的导航器导航到的内容时发生。
公共事件 Navigated 在已经找到应用程序中的导航器要导航到的内容时发生,尽管此时该内容可能尚未完成加载。
公共事件 Navigating 在应用程序中的导航器请求新导航时发生。
公共事件 NavigationFailed 在应用程序中的导航器在导航到所请求内容时出现错误的情况下发生。
公共事件 NavigationProgress 在由应用程序中的导航器管理的下载过程中定期发生,以提供导航进度信息。
公共事件 NavigationStopped 在调用应用程序中的导航器的 StopLoading 方法时发生,或者当导航器在当前导航正在进行期间请求了一个新导航时发生。
公共事件 SessionEnding 在用户通过注销或关闭操作系统而结束 Windows 会话时发生。
公共事件 Startup 在调用 Application 对象的 Run 方法时发生。
页首
显式接口实现

  名称 说明
显式接口实现 私有方法 IQueryAmbient.IsAmbientPropertyAvailable 查询当前范围中是否有指定的环境属性。
页首
备注

Application 是一个类,其中封装了 WPF 应用程序特有的功能,包括:

Application 实现单一实例模式以提供对其窗口、属性和资源范围服务的共享访问。 因此,对于每个 AppDomain,只能创建 Application 类的一个实例。

可以使用标记、标记与代码隐藏或代码来实现 Application 如果 Application 是使用标记实现的(无论是标记还是标记与代码隐藏),则标记文件都必须配置为一个 Microsoft build engine (MSBuild) ApplicationDefinition 项。

注意 注意

独立应用程序不需要 Application 对象;可以实现自定义 static 入口点方法 (Main),该方法可以在不创建 Application 的实例的情况下打开一个窗口。 但是,XAML browser applications (XBAPs) 需要 Application 对象。

示例

下面的示例演示如何只使用标记来定义一个标准应用程序:

XAML

<Application xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" />


下面的示例演示如何只使用代码来定义一个标准应用程序:

Visual Basic


Imports Microsoft.VisualBasic
Imports System ' STAThread
Imports System.Windows ' Application

Namespace SDKSample
	Public Class AppCode
		Inherits Application
		' Entry point method
		<STAThread>
		Public Shared Sub Main()
			Dim app As New AppCode()
			app.Run()
		End Sub
	End Class
End Namespace


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" />


Visual Basic


Imports Microsoft.VisualBasic
Imports System.Windows ' Application

Namespace SDKSample
	Partial Public Class App
		Inherits Application
	End Class
End Namespace


C#

using System.Windows;  // Application

namespace SDKSample
{
    public partial class App : Application { }
}


版本信息

.NET Framework

受以下版本支持:4、3.5、3.0

.NET Framework Client Profile

受以下版本支持:4、3.5 SP1
平台

Windows 7, Windows Vista SP1 或更高版本, Windows XP SP3, Windows Server 2008(不支持服务器核心), Windows Server 2008 R2(支持 SP1 或更高版本的服务器核心), Windows Server 2003 SP2

.NET Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求
线程安全

此类型的公共 static(在 Visual Basic 中为 Shared)成员是线程安全的。 此外,FindResourceTryFindResource 方法以及 PropertiesResources 属性是线程安全的。

请参见

参考

其他资源