Переход на страницу 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.