2016-08-14 82 views
0

我的框架有點問題。UWP內容對話框和內容框架

我寫了一個靜態方法,它在裏面繪製一個帶有文本框的內容對話框,如果文本框不是空的,它應該打開page_2

目前我使用"ContentFrame.Navigate(typeof(Page_2), "operation");"

但我的項目有炫魅窗格Hamburguer菜單,它應該在所有的頁面。 ,如果我使用ContentFrame.Navigate它消失。

這裏是我的靜態內容的對話框:

public static async void D_NewProject(double Widthmax) 
    { 
     ContentDialog D_NewProject = new ContentDialog() 
     { 
      Title = "New Project", 
      MaxWidth = Widthmax, // this.ActualWidth, 
     }; 

     StackPanel D_panel = new StackPanel(); 


     TextBox TextBox_D1 = new TextBox() 
     { 
      PlaceholderText = "Name:", 
      TextWrapping = TextWrapping.Wrap, 
     }; 

     D_panel.Children.Add(TextBox_D1); 

     D_NewProject.Content = D_panel; 


     D_NewProject.PrimaryButtonText = "OK"; 
     D_NewProject.PrimaryButtonClick += delegate 
     { 
      if (TextBox_D1.Text != "") 
      { 
      /**/ 
       Frame ContentFrame = Window.Current.Content as Frame; 
       ContentFrame.Navigate(typeof(Page_2), "operation"); 
      /**/ 
      } 
     }; 
     await D_NewProject.ShowAsync(); 
    } 

如果你需要更多的像窗格中的代碼,你可以要求它。 任何幫助表示讚賞。

回答

0

如果您想要在所有頁面中都有效的佈局頁面,您需要在App.xaml.cs中創建一個方法,該方法將當前頁面加載到此佈局的內部。 我可以建議你這種方法,我用它自己:

public static void LoadLayout(Type pageType) 
{ 
    // just ensure that the window is active 
    RootFrame = new _Layout(); 
    RootFrame.ContentFrame.Navigate(pageType, null); 
    RootFrame.ContentFrame.Navigated += ContentFrame_Navigated; 
    ContentFrame_Navigated(null, null); 
    Window.Current.Content = RootFrame; 
} 

ContentFrame_Navigated委託只用於控制版面上的項目(例如:按鈕,...)。

+0

我在執行解決方案時遇到了一些問題:「無法找到類型或名稱空間名稱_Layout」(您是否缺少using指令或程序集引用?)「。 – Julius

+0

@Julius'_Layout'是你想在所有頁面中使用的頁面,我將它命名爲:'_Layout'。 – Hamed