2017-03-09 174 views
0

在項目中,我以這種方式顯示Window訪問頁面的功能

MainWindow mainWindow = new MainWindow(); 
mainWindow.Show(); 

比我在自己的框架加載Page

mainWindow.frame.NavigationService.Navigate(new Uri("PageWelcome.xaml", UriKind.Relative)); 

PageWelcome包含一些公共功能如下:

public void Play() 
{ 
    mediaElement.Play(); 
} 

現在來自上面的初始類,我想調用Play方法。 這樣做的正確方法是什麼? 我必須檢索框架的當前內容?

+0

這個解決方案有什麼問題嗎? '((PageWelcome)mainWindow.frame.Content).Play();' – Mark

回答

1

您既可以在FrameContent財產轉換爲PageWelcome

PageWelcome page = mainWindow.frame.Content as PageWelcome; 
if(page != null) 
    page.Play(); 

或者您也可以創建Page的情況下,保持在你的類的字段對它的引用,並設置FrameContent屬性:

private WelcomePage page = new WelcomePage(); 
public void SomeMethod() 
{ 
    MainWindow mainWindow = new MainWindow(); 
    mainWindow.frame.Content = page; 
    mainWindow.Show(); 
} 

private void SomeOtherMethod() 
{ 
    page.Play(); 
} 

使用你不必投了後一種方式。