uwp动态创建xaml或新页面

时间:2017-02-01 03:32:18

标签: c# xaml uwp

我是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";
      } 
   }
}

在上面的代码中我试图创建新类(page2),在按钮点击事件中它应该导航到页面

1 个答案:

答案 0 :(得分:1)

不确定是否可能,也许是,因为大多数XAML事情也可以在后面的代码中完成。不过,也许尝试不同的东西 - 创建一个页面的基本模板 - 让它称之为 MultiPage ,然后根据合适的传递参数在 OnNavigatedTo 上重新设计它。一个简短的示例 - MultiPage&#39> 代码:

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);
}