2013-07-10 3 views
4

У меня есть переход страницы (контроль) в MainWindow, у меня есть много пользовательских контрольных страниц, я хочу получить доступ к переходу страницы в MainWindow с моей страницы управления пользователями? Как мне это сделать? Я пробовал:Доступ к элементам MainWindow на странице управления пользователями. WPF C#

 Story page = new Story(); 
     NavigationService nav = NavigationService.GetNavigationService(this); 
     // Navigate to the page, using the NavigationService 
     // if (nav != null) 
     // { 
     // nav.Navigate(page); 
      MainWindow test = new MainWindow(); 
      test.pageTransition1.ShowPage(page); 

    // } 

ответ

2

Вы можете найти управление WpfPageTransitions.PageTransition, как это от UserControls код позади:

public static WpfPageTransitions.PageTransition FindPageControl(DependencyObject child) 
{ 
    DependencyObject parent= VisualTreeHelper.GetParent(child); 

    if (parent == null) return null; 

    WpfPageTransitions.PageTransition page = parent as WpfPageTransitions.PageTransition; 
    if (page != null) 
    { 
     return page; 
    } 
    else 
    { 
     return FindPageControl(parent); 
    } 
} 

Затем вы можете использовать его как это:

this.FindPageControl(this).ShowPage(...); 
+0

эй спасибо за ответ, но PageTransition не является элементом управления WPF, я добавил в управлении с другой источник .. – user2376998

+0

поэтому, когда я делаю выше, PageTransition будет отсутствовать – user2376998

+0

Откуда вы его добавляете? Не могли бы вы показать код? –

10
Application.Current.MainWindow 

Используя это, вы можете получить доступ к MainWindow из любого места.

0

Создание метода внутри основного окна для Выбор страницы Переход

public void ChangePage() 
     { 
      pageTransitionControl.ShowPage(new NewData()); 
     } 

Тогда в контроле ребенка

private void btnUpdate_Click(object sender,RoutedEventArgs e) 
     { 

      MainWindow win = (MainWindow)Window.GetWindow(this); 
      win.ChangePage(); 
     } 
Смежные вопросы