2013-07-10 164 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控制:

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(); 
     }