2015-01-14 59 views
0

我有三個XAML文件,它們是mainwindow.xaml,login.xaml,homepage.xaml。由於文件可以通過框架瀏覽,我添加了一個框架到適合整個屏幕的主窗口。導航到另一個XAML文件

XAML主窗口的:主窗口的

<Window x:Class="Myproject.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="MainWindow" Height="350" Width="525" WindowState="Maximized" Initialized="Window_Initialized"> 
    <Grid> 
     <Frame Name="pageFrame"></Frame> 
    </Grid> 
</Window> 

CS文件:

private void Window_Initialized(object sender, EventArgs e) 
{ 
    pageFrame.Height = SystemParameters.WorkArea.Height-10; 
    pageFrame.Width = SystemParameters.WorkArea.Width; 
    pageFrame.Navigate(new login()); 
} 

它完美導航到登錄頁面,並進行登錄操作那裏。

問題是,它不會從login.xaml.cs

代碼用於導航從login.xaml.cs到homepage.xaml導航到homepage.xaml

MainWindow mw = new MainWindow(); 
mw.pageFrame.Navigate(new homepage()); 

如果執行這些語句,則該代碼通過使用斷點進入if語句部分和i checked。它執行那些和對象被填充,但naviagtion不會發生。

我在做什麼錯了?這是不是正確的方法?

+0

找出問題但不知道解決方法。問題是**沒有**控件可以修改。 –

+0

我編輯了你的標題。請參閱:「[應該在其標題中包含」標籤「](http://meta.stackexchange.com/questions/19190/)」,其中的共識是「不,他們不應該」。 –

回答

1

問題是,好吧,mw是一個新的窗口,甚至根本沒有顯示。而且你留在你的舊的MainWindow實例中,沒有任何事情發生在你的舊MainWindow上。

您需要從舊的MainWindow中導航,而不是新的。

((MainWindow)(Application.Current.MainWindow)).pageFrame.Navigate(new homepage()); 

你有你的主窗口,Application.Current.MainWindow參考,但你需要將它轉換成你自己的類型MainWindow第一。

+0

完美答案。 –

相關問題