簡體   English   中英

如何將Page1.xaml打開到MainWindow.xaml中

[英]How to open Page1.xaml into MainWindow.xaml

我有一個正在使用的非常簡單的桌面應用程序,但是在執行一些基本任務時遇到了問題。 我正在使用Visual Studio 2013。

我已經從空白的WPF模板創建了一個項目。 我創建了一個名為Page1.xaml的新頁面,以與默認的MainWindow.xaml窗口一起使用。

在我的MainWindow.xaml窗口中,有網格,並且網格內是一個圖像。

<Grid MouseDown="Grid_MouseDown_1" Cursor="Hand" >
    <Image Name="ImageIntro" Source="images/Stories-intro.jpg" Stretch="None" />
</Grid>

網格具有MouseDown事件,因此我可以檢測到用戶何時單擊網格內的任何位置。

private void Grid_MouseDown_1(object sender, MouseButtonEventArgs e)
    {

    }

非常基本,所有工作和編譯均按預期進行。

我的問題是我無法在MainWindow.xaml的窗口中加載Page1.xaml。 我不想打開單獨的窗口,我只想將Page1.xaml上的內容顯示在MainWindow.xaml的可見窗口內。

我嘗試使用以下內容,但在鏈接上單擊時出現錯誤:發生類型為'System.NullReferenceException'的未處理異常

private void Grid_MouseDown_1(object sender, MouseButtonEventArgs e)
    {
        Uri uri = new Uri("Page1.xaml", UriKind.Relative);
        NavigationService ns = NavigationService.GetNavigationService(this);
        ns.Navigate(uri);            
    }

這不是瀏覽器應用程序,只是桌面應用程序。 第一個屏幕(MainWindow.xaml)應該只單擊以顯示第二個屏幕(Page1.xaml)。

我希望Page1.xaml內容占據MainWindow.xaml的整個窗口(很抱歉,但是我不能強調足夠,我不希望MainWindow.xaml中的框架或任何內容顯示用戶何時在Page1上.xaml)。

我是桌面應用程序的新手,但是我對.net C#的Web應用程序有廣泛的了解。 如果有更好的方法可以實現這一目標,我不反對改變自己的工作流程。 例如,也許我不應該使用“窗口到頁面”導航,而應該使用“窗口到窗口”或其他方法。

我想這將是一個相對簡單的任務,但是我還沒有找到任何可行的方法,因此希望這里的人能夠解釋它。

閱讀此MSDN鏈接,對於工作的要求說, this (在你的代碼)必須是一個Frame 我在這里看不到任何XAML代碼,但是我猜this是一個窗口。 您需要一個框架來承載導航,因此您的MainWindow應該可能只是該框架,而當前窗口的內容應為“ Page0”。

在主窗口中創建框架

然后在您的事件處理程序中

  Page1 mypage=new Page1();//object of the page 1

  frame.Navigate(mypage);//pass it to frame navigate method

謝謝大家的幫助,這是我使用的解決方案(我想確保將來有同樣問題的任何人都可以找到一個代碼示例)。

我在MainWindow.xaml頁面中添加了一個框架:

<Grid MouseDown="Grid_MouseDown_1" Cursor="Hand" >
    <Image Name="ImageIntro" Source="images/Stories-intro.jpg" Stretch="None" />
    <Frame Name="Frame1" Content="" HorizontalAlignment="Left" VerticalAlignment="Top"/>
</Grid>

然后,我在活動中添加了以下內容:

private void Grid_MouseDown_1(object sender, MouseButtonEventArgs e)
    {
        Page1 mypage = new Page1();
        Frame1.Navigate(mypage);
    }

這使我可以單擊鏈接,然后出現新頁面Page1.xaml。 頂部也有一個導航欄,內容沒有完全占用MainWindow.xaml窗口,但我想我可以隨意修改設置並將其放到所需位置。

非常感謝Filippo B,Nauman Ahmad和CodingGorilla的協助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM