从用户控制页面访问MainWindow的控件。 WPF C#

我在MainWindow中有一个页面转换(一个控件),我有很多用户控制页面,我想从我的用户控制页面访问MainWindow中的页面转换? 我怎么做? 我试过了 :

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

 Application.Current.MainWindow 

使用此function,您可以从任何地方访问MainWindow。

您可以从后面的UserControls代码中找到这样的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(...); 

在主窗口中创建一个用于选择页面转换的方法

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

然后在儿童控制中

 private void btnUpdate_Click(object sender,RoutedEventArgs e) { MainWindow win = (MainWindow)Window.GetWindow(this); win.ChangePage(); }