Приложение и класс Application

Последнее обновление: 1.11.2015

Создавая приложения, мы пока что работали только с окном или классом UserControl - добавляли туда элементы управления и связывали с ними определенную логику. Однако фактически работа приложения Silverlight начинается не с запуска окна, а с класса Application.

При создании проекта Visual Studio автоматически генерирует файлы App.xaml и App.xaml.cs - эти файлы как раз и представляют приложение, а точнее класс App, который является производным от класса Application. Когда запускается приложение Silverlight, плагин создает экземпляр класса App. И затем уже начинает работать логика, определенная в классе App: создание окна приложения и т.д.

Логика работа приложения может быть представлена следующим образом:

  1. Пользователь отправляет запрос серверу на получение определенной html-страницы

  2. Браузер загружает плагин Silverlight, который потом загружает xap-файл приложения.

  3. Плагин считывает из xap-пакета файл App.Manifest.xml и смотрит. какие сборки использует приложение. Затем создает среду выполнения Silverlight и загружает се используемые сборки приложения.

  4. Затем плагин создает экземпляр класса приложения, определенного в файлах App.xaml и App.xaml.cs

  5. Конструктор этого класса вызывает событие Startup

  6. В обработчике этого события запускается визуальный объект приложения, например, MainPage.

Если первые шаги скрыты от нас, то последние два пункта мы можем увидеть, открыв файл App.xaml.cs:

using System;
..................................

namespace TestApplication
{
    public partial class App : Application
    {

        public App()
        {
            this.Startup += this.Application_Startup;
            this.Exit += this.Application_Exit;
            this.UnhandledException += this.Application_UnhandledException;

            InitializeComponent();
        }

        private void Application_Startup(object sender, StartupEventArgs e)
        {
            this.RootVisual = new MainPage();
        }

        private void Application_Exit(object sender, EventArgs e)
        {

        }
.............................................................

В строке this.Startup += this.Application_Startup; мы прикрепляем к событию запуска приложения обработчик Application_Startup, в котором для свойства RootVisual устанавливаем объект окна. Если у нас в приложении определено несколько окон, то мы можем поменять MainPage на любой другой класс, образованный от UserControl. Свойство RootVisual в данном случае представляет визуальный объект приложения - то есть окно.

Кроме свойства RootVisual у класса Application можно выделить еще несколько свойств:

Host

Это свойство позволяет взаимодействовать с браузером и остальной частью html-страницы

Resources

Представляет ресурсы приложения

IsRunningOutOfBrowser

Показывает, является ли приложение внебраузерным или запускается внутри браузера

Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850