2013-07-23 29 views
1

我試圖在WPF/C#中創建的應用程序在上面的「電視屏幕」類型面板(其實際上是商業飛機的FMS模擬器)的佈局中有相當多的按鈕。許多按鈕會改變佈局,這是電視屏幕上衆多的TEXTBOX。我的問題是:是否有規定將佈局封裝在不同的類/文件中,並在選擇各種按鈕時將它們加載到「電視屏幕」中?換句話說,用戶點擊飛行計劃按鈕,上面的355x355框(屏幕)的佈局加載XAML「flight_plan」佈局/文件/類。每個佈局具有不同的TEXTBOX大小&位置,並且有超過30個不同的「頁面」,這將使它們成爲可能。WPF中的多個XAML佈局

我對WPF和c#很新,但是已經用C++編寫了win應用程序,一直回到Turbo C & OWL。我也可能正在嘗試做一些不可能的事情,因爲最近在Android/Java中工作並且容易混淆功能。

在此先感謝。

編輯 感謝@ adityaswami89和其他人誰把我在正確的軌道上,我已經找到了解決辦法。我在VS2012中通過一個新的「WPF頁面」添加了頁面。然後,將「屏幕」更改爲導航框架,從那裏開始非常簡單。以下是我爲測試而創建的簡單項目。

public partial class MainWindow : Window 
    { 
     NavRad navrad = new NavRad(); 
     FPlan fplan = new FPlan(); 

     public MainWindow() {..} 

     private void Frame_Navigated_1(object sender, NavigationEventArgs e) {..} 

     private void Button_Click_1(object sender, RoutedEventArgs e) 
     { 
      Screen_Frame.Navigate(fplan); 
     } 

     private void Button_Click_2(object sender, RoutedEventArgs e) 
     { 
      Screen_Frame.Navigate(navrad); 
     } 
+1

只需使用一些'UserControls'。否則,重新設置「TabControl」以在標題中包含按鈕。有成千上萬的方法來實現這一點。你有什麼嘗試? –

+0

我還沒有嘗試過任何東西,但一定會看UserControls。我今晚剛開始做研究,不知道從哪裏開始。我已經寫了大約1000行代碼,並且認爲必須有一種更簡單和更合理的方式來實現它。 –

+0

你有1000行寫什麼? WPF不需要太多的代碼,它與你在C++或其他平臺上可能會用到的非常不同。發佈你需要的截圖,我可以告訴你在WPF中完成它的正確方法。 –

回答

2

您也可以使用框架的概念來達到預期的功能,如果這可能是您正在尋找的選項。

你可以參考下面的鏈接相同。

http://msdn.microsoft.com/en-us/library/ms750478.aspx#Frame_in_Standalone_Applications

+0

這個解決方案實際上是爲了解決這個問題。我已經編輯了我的帖子以包含代碼。非常感謝!!! –

+1

很高興它:)繼續編碼。我也在adityaswami89.wordpress.com上發表博客。 – adityaswami89

1

您可以在不同的用戶控件中抽象出不同的UI佈局集,並根據您的UI邏輯加載它們。其中一種方法是使用MVVM框架,例如,Caliburn Micro使得這是一個非常簡單的任務,如下所示:

ActivateItem(UILayoutViewModel);

而且這個調用可以從任何方法調用。

查看Caliburn Screens and Composition的更多內容official source

+1

您鏈接的網站上的示例與我需要的非常相似。 –

+0

我很高興能幫上忙。 –