Я хотел бы иметь второй, (и более) окна для моего окна универсального приложения для работы на ПК. Но, к моему удивлению, это не кажется легким. Например, в WPF я мог бы добавить в проект новый элемент и выбрать окно. В Universal нет «окна» в новых элементах. Я могу объявить объект класса windows.ui.xaml.window, но я не могу его создать (нет нового) или показать его. Как запустить другое окно? СпасибоНесколько окон, Windows Universal
ответ
Существует sample available on Microsoft's UWP GitHub repo, который охватывает создание нескольких видов для вашего приложения. Я могу предоставить более подробную информацию или помощь, если вам это нужно
Точно, что Мне нужно, большое спасибо – Ianb
Хорошо, что делает новые окна - но это ужасно сложно! В WPF, например, я мог бы просто создать новое окно и поместить некоторые элементы управления на него вместе с дизайнером и просто сделать что-то вроде dim w, как новый MyWindow, w.show - есть ли эквивалент этого в универсальном? – Ianb
@ Ianb - он не может быть таким же, как WPF, и по-прежнему быть переносимым на разных платформах Windows (например, Phone, Xbox) и когда Windows Desktop работает в режиме планшета. К сожалению, управление вторичными Windows, к сожалению, более сложное для обработки этих сценариев. – WiredPrairie
в конечном итоге найти то, что является довольно просто, занимает страницу по типу, создает его и окно с ним внутри, и возвращает объект страницы, созданный:
async Task<Page> CreatePageWindowAsync(Type p)
{
CoreApplicationView newView = CoreApplication.CreateNewView();
int newViewId = 0;
Page pg = null;
await newView.Dispatcher.RunAsync(CoreDispatcherPriority.Normal,() =>
{
Frame frame = new Frame();
frame.Navigate(p, null);
Window.Current.Content = frame;
Window.Current.Activate();
newViewId = ApplicationView.GetForCurrentView().Id;
pg = frame.Content as Page;
});
bool viewShown = await ApplicationViewSwitcher.TryShowAsStandaloneAsync(newViewId);
return (pg);
}
Это собственная функция шаблона 10 для UWP: https://github.com/Windows-XAML/Template10/blob/master/Template10%20(Library)/Services/NavigationService/NavigationService.cs#L133 –