2014-11-17 2 views
1

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

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

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

ответ

1

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

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

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

+1

Да. Это то, что я искал. Отмечено как ответ. Спасибо за помощь. – MajkeloDev

+0

Это выглядит ужасно, чтобы возиться с, я иду с «добрым старым», «создавая статическое поле, где-то трюк», – Felype

Смежные вопросы