Переход на страницу XAML при нажатии плитки

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

Например, уведомления о тостах имеют NavigationUri что вам нужно ввести пользовательскую страницу для загрузки после ее нажатия. На плитках вы можете только получить эту информацию и не устанавливать ее. Так есть другой способ или я что-то упустил?

3 ответа

Когда вы создаете плитку, вы указываете URL, к которому следует перейти. Просто включите дополнительный параметр, такой как comingFrom и установите его tile - в представлении OnNavigatedToпроверьте, присутствует ли параметр (QueryString твой друг).

Если это так - вы переходили с плитки. Если это не так - вы этого не сделали.

Это все хорошо освещено в этом блоге: http://blogs.msdn.com/b/ptorr/archive/2010/08/28/redirecting-an-initial-navigation.aspx?wa=wsignin1.0

По сути, идея состоит в том, чтобы отменить навигацию по умолчанию и затем запросить навигацию к тому, что Page ты хочешь.

Похоже, вам нужен SecondaryTile. SecondaryTiles позволяют вам перейти на страницу, отличную от "MainPage", если вы того пожелаете.

Вот пример того, как создать вторичную плитку

ShellTile tileToFind = ShellTile.ActiveTiles.FirstOrDefault(x => x.NavigationUri.ToString().Contains("Page2.xaml"));
if (tileToFind == null) // have not pinned this page yet!
{
    // Create the tile if we didn't find it already exists.
    var tileData = new StandardTileData
    {
        Title = "Navigate To Page2",
    };

    // Create the tile and pin it to Start. This will cause a navigation to Start and a deactivation of our application.
    ShellTile.Create(new Uri("/Page2.xaml", UriKind.Relative), tileData);
}

Это поместит новую плитку на стартовый экран, и когда вы нажмете на нее, она перейдет на страницу Page2.

Другие вопросы по тегам