Навигация по страницам кода Silverlight спирали - PullRequest
1 голос
/ 13 февраля 2009

Я новичок в Silverlight, и из того, что я понял, нет никакой прямой функциональности в отношении подкачки, поэтому я скачал проект helix с здесь . Я нашел это довольно полезным, но не смог найти способ (используя спираль) для навигации по страницам с помощью кода. Причина, по которой мне это нужно, заключается в том, что я хочу перейти на другую страницу, если метод был успешно выполнен.

1 Ответ

2 голосов
/ 13 февраля 2009

В событии OnLoaded файла RootPage.xaml.cs вы можете увидеть следующий код:

this.rootFrame.Navigate( new Uri( "Page1.xaml", UriKind.Relative ) );

Это программный переход к Page1.xaml (который реализует NavigationPage), когда RootPage загружается, вызывая метод Navigate экземпляра элемента управления Frame, определенного в RootPage.xaml:

<h:Frame x:Name="rootFrame" Grid.Row="0" Grid.Column="1"
         NavigationUIVisibility="Visible" Margin="4" />

Этот метод Navigate, в свою очередь, вызывает метод Navigate инкапсулированного экземпляра StackJournal во фрейме.

Если вы находитесь в коде позади страницы, которая не имеет прямого доступа к родительскому фрейму (т. Е. К любой другой странице, кроме RootPage), такой как Page1.xaml, вам нужно вызвать событие RequestNavigate, которое будет всплывать до Ближайший родительский кадр.

Следующий код показывает, как программно перемещаться от нажатия кнопки на Page1.xaml непосредственно к Page3.xaml:

private void TestButton_Click(object sender, RoutedEventArgs e)
{
    this.RaiseEvent(NavigationLink.RequestNavigateEvent,
        new RequestNavigateEventArgs(new Uri("Page3.xaml", UriKind.Relative),
        "rootFrame"));
}

Обратите внимание, что targetName - это rootFrame, родительский объект Frame, который в конечном итоге выполняет навигацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...