UWP在课堂上打开新窗口
我的项目中有太多的页面,我想在一个类中编写这些页面的开始和结束。但它不会打开新的一页 多谢各位 我的班级代码UWP在课堂上打开新窗口,uwp,windows-10-iot-core,new-window,openpages,Uwp,Windows 10 Iot Core,New Window,Openpages,我的项目中有太多的页面,我想在一个类中编写这些页面的开始和结束。但它不会打开新的一页 多谢各位 我的班级代码 class Class { public static void GoToOpenPage1() { Frame OpenPage1 = new Frame(); OpenPage1.Navigate(typeof(MainPage)); } } 按钮点击代码 private void button_Click(object se
class Class
{
public static void GoToOpenPage1()
{
Frame OpenPage1 = new Frame();
OpenPage1.Navigate(typeof(MainPage));
}
}
按钮点击代码
private void button_Click(object sender, RoutedEventArgs e)
{
Class.GoToOpenPage1();
}
创建框架后,需要将其插入到当前视觉树中,以便可以看到它
例如,我们在MainPage.xaml中创建一个网格
在MainPage.xaml.cs中,我们可以通过静态变量公开MainPage实例
公共静态主页当前;
公共主页
{
this.InitializeComponent;
电流=这个;
}
这样,当加载MainPage时,FrameContainer也将被加载。我们可以通过MainPage.Current.FrameContainer从外部获取该网格,然后将生成的框架插入到该网格中,这就完成了插入到可视化树的步骤
公共静态void gotopenpage1
{
Frame OpenPage1=新帧;
OpenPage1.NavigateTypeFootherPage;
MainPage.Current.FrameContainer.Children.Clear;
MainPage.Current.FrameContainer.Children.AddOpenPage1;
}
但从您提供的代码来看,您似乎正在导航到主页。如果需要使主页再次成为窗口的内容,可以这样编写:
var rootFrame=Window.Current.Content作为框架;
rootFrame.NavigatetypeofMainPage;
以上内容属于页面导航,如果要打开新窗口,可以参考本文档,其中提供了详细说明:
如果目标是Windows 10版本1903 SDK 18362或更高版本,则可以使用AppWindow API打开窗口: 在早期版本中,应创建CoreApplicationView:
我可以知道该应用程序正在Windows IoT Core上运行吗?如果是,Windows IoT Core仅支持单页UWP应用程序,它无法像在Windows桌面上一样打开新页面。
class Class
{
public static async Task GoToOpenPage1()
{
AppWindow appWindow = await AppWindow.TryCreateAsync();
Frame OpenPage1 = new Frame();
OpenPage1.Navigate(typeof(MainPage));
ElementCompositionPreview.SetAppWindowContent(appWindow, OpenPage1);
await appWindow.TryShowAsync();
}
}
class Class
{
public static async Task GoToOpenPage1()
{
CoreApplicationView newView = CoreApplication.CreateNewView();
int newViewId = 0;
await newView.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
{
Frame OpenPage1 = new Frame();
OpenPage1.Navigate(typeof(MainPage));
Window.Current.Content = OpenPage1;
Window.Current.Activate();
newViewId = ApplicationView.GetForCurrentView().Id;
});
bool viewShown = await ApplicationViewSwitcher.TryShowAsStandaloneAsync(newViewId);
}
}