2017-02-01 23 views
2

我是新來UWP,我不希望創建多個靜態的XAML文件,如何創建新頁面,添加動態控件到該頁面和瀏覽UWP創建XAML或新的網頁動態

namespace UItest 
{ 
    // <summary> 
    // An empty page that can be used on its own or navigated to within a 
    // </summary> 
    public sealed partial class MainPage : Page 
    { 
    public MainPage() 
    { 
     InitializeComponent(); 
    } 
    private void btntest_Click(object sender, RoutedEventArgs e) 
    { 
     Frame.Navigate(typeof(page2)); 
    } 
    } 

    public sealed partial class page2 : Page 
    { 
    public page2() 
    { 
     Button bt = new Button(); 
     bt.Content = "page2"; 
     } 
    } 
} 

在上面的代碼我試圖創建新的類(頁面2),在按鈕單擊事件它應該導航到頁面

+0

那麼,什麼是問題?按鈕不能正確導航,或者新頁面沒有顯示按鈕? –

+0

不,它拋出AccessViolationException。我沒有創造自己正確的頁面,我不知道如何動態地創建頁面 –

回答

1

不知道這是可能的,也許是因爲大部分的XAML事情也可以在後面的代碼中完成。不過,也許嘗試不同的東西 - 一個網頁創建一個基本的模板 - 姑且稱之爲多頁,並重新設計它的OnNavigatedTo此基礎上適當傳遞的參數。一個簡短的樣本 - 多頁的後面的代碼:

public enum PageType { First, Second } 

public sealed partial class MultiPage : Page 
{ 
    public MultiPage() 
    { 
     this.InitializeComponent(); 
    } 

    protected override void OnNavigatedTo(NavigationEventArgs e) 
    { 
     base.OnNavigatedTo(e); 
     switch ((PageType)e.Parameter) 
     { 
      case PageType.First: 
       this.Content = new Button { Content = "First page" }; 
       break; 
      case PageType.Second: 
       this.Content = new Button { Content = "Second page" }; 
       break; 
      default: 
       break; 
     } 
    } 
} 

導航的方式到該網頁:

private void FirstClick(object sender, RoutedEventArgs e) 
{ 
    this.Frame.Navigate(typeof(MultiPage), PageType.First); 
} 

private void SecondClick(object sender, RoutedEventArgs e) 
{ 
    this.Frame.Navigate(typeof(MultiPage), PageType.Second); 
} 
+0

它爲單頁,假定網主頁 - >縮(一) - >縮(二),如果我點擊後退按鈕是導航炫魅廣東它應該導航回到多頁(首頁) –

+0

@SHASHIKUMARS然後這種方法將不適用於你 - 它在一個頁面的同一個實例上運行,但內容不同。 – Romasz