我有2個xaml文件L1.xaml和L2.xaml 首先L1將打開。它有一個按鈕,當按下時打開L2。 但是我想讓L2在與L1相同的窗口中打開。如何在同一個窗口切換到另一個xaml文件?
更確切地說,當按鈕被點擊時,L1應該終止,L2應該在沒有主窗口消失的情況下開始,甚至一秒鐘。
我有2個xaml文件L1.xaml和L2.xaml 首先L1將打開。它有一個按鈕,當按下時打開L2。 但是我想讓L2在與L1相同的窗口中打開。如何在同一個窗口切換到另一個xaml文件?
更確切地說,當按鈕被點擊時,L1應該終止,L2應該在沒有主窗口消失的情況下開始,甚至一秒鐘。
您需要做的是創建一個導航頁面,然後將L1和L2修改爲頁面。這將允許您在運行時交換頁面並使用事件來分配頁面。 請參閱此堆棧溢出頁面以實現不同的方式 Window vs Page vs UserControl for WPF navigation?
有很多方法可以實現。 1.-你可以創建一個導航頁面,你的L1.xaml和L2.xaml他們需要成爲一個頁面。 這是一篇很好的文章。 http://paulstovell.com/blog/wpf-navigation
2:您可以在新增的MainPage框架控件,這種控制就可以網頁(您再次L1和L2必須是網頁(這是幾乎相同的第一點,但差異你之間導航可以使用其他控件(如UserControl)中的Frame控件
3.您可以使用ContentControl或ContentPresenter作爲容器這些控件具有屬性內容當用戶單擊某個按鈕以顯示L1或L2 xaml(doesn'無論他們是UserControl還是Page),只需創建視圖的新實例,例如: MyContentControl.Content = new MyView1();
顯然這種技術非常簡單,您需要檢查這些選項對於您的需求是否足夠。
最好的問候!
謝謝你的解釋 ,但我不能把它作爲一個頁面....因爲有很多按鍵事件和焦點設置爲窗口。 在UserControl中,idk爲什麼但按鍵事件不起作用。 對於Page, 這是一款遊戲,所以我不想讓後退的瀏覽器窗口向前打開。 –
你應該使用我解釋的第三個選項。在你的窗口中只需放置一個內容控件,如果你想從L1導航到L2並且按鈕位於你可以訪問父項目的L1的內部,你需要改變設置屬性Content的視圖,使用你的usercontrols的一個新實例你的UserControl(它應該是ContentControl),並用新的View:Example來更改屬性Content。 var parent = L1.Parent作爲ContentControl; parent.Content = new myNewView(); – RicardoPons
這些xaml文件是什麼?他們是'Windows'嗎? 'Pages'? 'UserControls'? –
他們的窗戶是 –