Как получить родительский фрейм с уровня страницы?

1

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

private void myButton_click(object sender, RoutedEventArgs e)
{
  SecondPage secPage = new SecondPage();
  ((this.Parent) as Frame).Navigate(secPage);
}

Я проверил, что "this.parent" возвращается, и он равен нулю. Как я могу получить родительский фрейм, чтобы я мог перемещаться с одной страницы на другую?

Теги:
navigation
wpf
parent

1 ответ

5
Лучший ответ

Страница также имеет свойство NavigationService. Вы можете использовать это свойство для удобства навигации между страницами:

private void myButton_click(object sender, RoutedEventArgs e) {
  SecondPage secPage = new SecondPage();
  NavigationService.Navigate(secPage);
}

Чтобы получить доступ к родительскому VisualTreeHelper, вы должны использовать VisualTreeHelper для подъема и поиска кадра. Вы можете найти больше об этом. В любом случае использование свойства NavigationService лучше.

  • 1
    Ага. Это то, что я искал. Помечено как ответ. Спасибо за помощь.
  • 1
    Это выглядит ужасно, с "старым добрым" я "создаю статическое поле где-то уловка"

Ещё вопросы

Сообщество Overcoder
Наверх
Меню