Мне добавили кнопку «Назад» на панель приложений на странице в одном из моих приложений, которое содержит веб-браузер.Я хотел, чтобы кнопка «Назад» на панели приложений переместила навигацию по веб-странице назад, и хотела, чтобы кнопка «Назад» была доступна на предыдущей странице xaml.Таким образом, пользователю не нужно использовать аппаратную кнопку «Назад» для перемещения назад по всем посещенным веб-страницам в веб-браузере, чтобы вернуться на предыдущую страницу xaml.Вот как я это сделал, и вы могли легко настроить стек вперед, и когда пользователь нажимает кнопку возврата (панель приложений), страница выскакивает из этого стека и перемещается в стек вперед.
private void NavigateWeb()
{
if (!loaded)
{
NavigationStack.Clear();
try
{
Web.Source = new Uri("http://m.weightwatchers.com/");
loaded = true;
}
catch (Exception ex)
{
MessageBox.Show("Unable to navigate to page.\n" + ex.Message,
"Error", MessageBoxButton.OK);
}
}
}
void Web_Navigated(object sender, System.Windows.Navigation.NavigationEventArgs e)
{
NavigationStack.Push(e.Uri);
}
void btnBack_Click(object sender, EventArgs e)
{
if (NavigationStack.Count > 2)
{
// get rid of the topmost item...
NavigationStack.Pop();
// now navigate to the next topmost item
// note that this is another Pop - as when the navigate occurs a Push() will happen
Web.Navigate(NavigationStack.Pop());
}
}
Причина, по которой я проверяю NavigationStack.Count> 2, заключается в том, что конкретная веб-страница, которую я показываю в веб-браузере, всегда начинается со ссылки «нажмите здесь, чтобы продолжить» на первой странице, и нет причин возвращаться к ней.,Это ошибка показа сайтов других людей в вашем веб-браузере - вы не можете контролировать то, что показано.