Click to Rate and Give Feedback
MSDN
MSDN Library
Web Development
Silverlight
Silverlight 3
Application Class
Collapse All/Expand All Collapse All
This page is specific to
Microsoft Silverlight 3

Other versions are also available for the following:
.NET Framework Class Library for Silverlight
Application Class

Encapsulates a Silverlight application.

Namespace:  System.Windows
Assembly:  System.Windows (in System.Windows.dll)
Visual Basic (Declaration)
Public Class Application
Visual Basic (Usage)
Dim instance As Application
C#
public class Application
XAML Object Element Usage
<Application .../>

Application is a class that encapsulates a Silverlight application and provides the following services:

  • Application Entry Point

  • Application Lifetime

  • Application Management

  • Application-Scoped Resources

  • Unhandled Exception Detection

The entry point in a Silverlight application is the class in your application assembly that derives from Application. This class is known as the application class. When the Silverlight plug-in starts, Silverlight uses metadata in the application package to instantiate the application class. At this point, the application's lifetime starts. The lifetime of an application occurs in the following order:

  • Construction (Application)

  • Initialization (Startup)

  • Application Running

  • ...

  • Application Shutting Down (initiated by user)

  • Exit (Exit)

By handling the Startup event, you can retrieve and process initialization parameters from the InitParams property of the StartupEventArgs object that is passed to the Startup event handler. Initialization parameters are configured by using the initParams property of the HTML object element that is used to configure and instantiate the Silverlight plug-in.

During startup, you can also specify the main application UI to show by setting the RootVisual property.

Once an application is running, the Application object and its state can be accessed from the static Current property. The singleton pattern ensures that state managed by Application, including shared resources (Resources) and custom properties, is available from a single, application-scoped location.

XAML Usage Notes for the Application class

In practical XAML usage, Application is almost always the root element of the App.xaml file and therefore a practical usage would include the client and XAML xmlns values, as well as an x:Class value for the code-behind that initiates the root visual, as shown in the following XAML fragment.

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

Technically the XAML usage for any member of the Application class that supports XAML applies both to the Application class and also to any Application subclass that does not specifically disable XAML usage by shadowing members or changing the access level of its constructors. However, the XAML usage for Application members shows the literal Application rather than the placeholder application because subclassing Application is not necessary for most Silverlight application model scenarios, and the XAML usage shows the most common usage patterns whenever possible.

The following code example demonstrates how to use this class to merge the XAML and code-behind portions of a Page class. This code is similar to the InitializeComponent method that Visual Studio generates for the same purpose.

Visual Studio generates the InitializeComponent method when a XAML file has a build action of Page. To load a XAML file using the following example code, set its build action to Resource.

Visual Basic
Private LayoutRoot As System.Windows.Controls.Grid

Public Sub New()
    System.Windows.Application.LoadComponent(Me, New System.Uri( _
        "/SilverlightApplication1;component/Page.xaml", _
        System.UriKind.Relative))
    Me.LayoutRoot = CType(Me.FindName("LayoutRoot"),  _
        System.Windows.Controls.Grid)
End Sub
C#
private System.Windows.Controls.Grid LayoutRoot;

public Page()
{
    System.Windows.Application.LoadComponent(this, new System.Uri(
        "/SilverlightApplication1;component/Page.xaml", 
        System.UriKind.Relative));
    this.LayoutRoot = ((System.Windows.Controls.Grid)
        (this.FindName("LayoutRoot")));
}
System..::.Object
  System.Windows..::.Application
Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.

Tags What's this?: Add a tag
Community Content   What is Community Content?
Add new content RSS  Annotations
Processing
© 2010 Microsoft Corporation. All rights reserved. Terms of Use | Trademarks | Privacy Statement
Page view tracker