Вопрос:

UWP создать XAML или новую страницу динамически

c# xaml uwp

777 просмотра

1 ответ

144 Репутация автора

Я новичок в 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), в случае нажатия кнопки он должен перейти на страницу

Автор: SHASHI KUMAR S Источник Размещён: 01.02.2017 03:32

Ответы (1)


1 плюс

27452 Репутация автора

Решение

Не уверен, что это возможно, возможно, так как большинство вещей XAML также могут быть выполнены в коде. Тем не менее, возможно, попробуйте что-то другое - создайте один базовый шаблон страницы - давайте назовем его MultiPage и изменим его дизайн на OnNavigatedTo на основе подходящего переданного аргумента. Краткий пример - код MultiPage :

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);
}
Автор: Romasz Размещён: 01.02.2017 06:19
Вопросы из категории :
32x32