Тогда в коде

ужно перейти на определенную страницу при первом запуске моего приложения, собрать данные для входа в систему и т. Д. Я использую IsloatedStorageSettings, чтобы сохранить значение, чтобы определить, является ли это первым запуском приложения, или нет, что работает нормально.

Моя проблема на самом деле заключается в переходе на мою страницу «первого запуска», когда приложение запускается в первый раз, используя NavigationService, кажется, что NavigationService на данный момент не создан, поэтому он все еще нулевой. Когда создается NavigationService или как обойти это?

Мой код (в конструкторе моей главной страницы:

if ((bool)settings["firstRun"])
 { 
    if (NavigationService != null)
    {
        NavigationService.Navigate(new Uri("/FirstRun.xaml", UriKind.Relative));
    }
    else
    {
        MessageBox.Show("Navigation service must be null?");   //always prompts
    }                
 }
else
{
   InitializeComponent();
} 

Ответы на вопрос(2)

Добавить в класс

    private bool m_onNavigatedToCalled = false;

В ктор

   this.LayoutUpdated += new EventHandler(MainPage_LayoutUpdated);

Тогда в коде

    void MainPage_LayoutUpdated(object sender, EventArgs e)
    {
        if (m_onNavigatedToCalled)
        {
            m_onNavigatedToCalled = false;
            Dispatcher.BeginInvoke(() =>
            {
                if (NavigationService != null)
                {
                    MessageBox.Show("Navigation not null?"); //always prompts
                }
                else
                {
                    MessageBox.Show("Navigation service must be null?");   
                } 
                //StartApp(); do all stuff here to keep the ctor lightweight
            }
            );
        }
    }
Решение Вопроса

Сообщение блога на входах и выходах перенаправления для начальной навигации, хотя для входа пользователя в систему я бы предложил, чтобы вы использовали полноэкранное всплывающее окно или имели контроль входа на «нормальной» стартовой странице и переключали видимость в зависимости от вашего первого условия запуска.

 Mick N15 янв. 2011 г., 02:29
+1 Еще один пост Питера стоит посмотреть на эту темуblogs.msdn.com/b/ptorr/archive/2010/08/28/...

Ваш ответ на вопрос