Многостраничные приложения в Silverlight - Запуск приложения
ОГЛАВЛЕНИЕ
Запуск приложения
При запуске приложение автоматически вызывает Application_Startup. Как уже обсуждалось ранее, создается новый экземпляр PageSwitcher, и он упрятан в Switcher (так же, как RootVisual). Cоздается новый экземпляр Page и вызывается Switch, при этом статическому методу передается элемент управления.
Метод Switch перегружается, и Application_Startup вызывает первую версию метода, который получает только один аргумент. Он ищет и находит только что созданный pageSwitcher и вызывает Navigate, передавая при этом только что полученный UserControl.
Теперь хорошо было бы пересмотреть Switcher и добавить проверку ошибок, которую мы опустили ранее. Здесь я продемонстрирую вам полную версию Switcher.cs,
using System;
using System.Windows.Controls;
namespace PageSwitchSimple
{
public static class Switcher
{
public static PageSwitcher pageSwitcher;
public static void Switch( UserControl newPage )
{
if ( pageSwitcher != null )
{
pageSwitcher.Navigate( newPage );
}
else
{
throw new Exception( "Switcher.pageSwitcher is null" );
}
}
public static void Switch( UserControl newPage, object state )
{
if ( pageSwitcher != null )
{
pageSwitcher.Navigate( newPage, state );
}
else
{
throw new Exception( "Switcher.pageSwitcher is null" );
}
}
}
}
Элемент управления переключается к перегруженному методу Navigate экземпляра PageSwitcher, где устанавливается содержимое,
public void Navigate( UserControl nextPage )
{
this.Content = nextPage;
}
На данном этапе на экране отображается первая страница и система находится в покое.