XAML winui3如何使一个新的应用程序窗口在按钮点击

kqqjbcuj  于 2023-08-01  发布在  其他
关注(0)|答案(1)|浏览(180)

我正在用Winui 3构建一个应用程序,所以XAML和C#
好了,如何在运行时创建一个新的应用程序示例。因此,在其中一个页面中,我有一个内容为“打开新窗口”的按钮。在按钮单击时,我想从正在构建的应用程序中打开一个新的自我/窗口。在winui 3示例应用程序中有一个示例,但对于使用最新版本的winui 3并从应用程序设计器创建应用程序的人来说,这不起作用。另外,当我四处寻找微软文档时,我也没有找到我想要的东西。
我在网上搜索了一下,发现下面的例子不起作用:https://learn.microsoft.com/en-us/windows/apps/design/layout/app-windowhttps://github.com/microsoft/WinUI-Gallery/blob/main/WinUIGallery/Navigation/NavigationRootPage.xaml.cs
我得到的是一次又一次的崩溃。

vyswwuz2

vyswwuz21#

这是一个有点棘手,但给予它一个尝试。
1.在 Assets 文件夹中创建一个唯一扩展名的虚拟文件,并确保将其Build Action属性设置为Content。在本例中,我的dummy文件是一个名为“dummy.test”的文本文件。

  • Package.appxmanifestDeclarations中添加File Type Associations声明,并设置这些属性:
  • 显示名称:测试项目
  • Name:life's a game
  • 文件类型:.test
  • 在按钮单击事件处理程序中,启动文件。这应该会启动与“test”扩展关联的应用程序,在本例中就是您的应用程序。
private async void LaunchAppButton_Click(object sender, RoutedEventArgs e)
{
    StorageFile file = await Package.Current.InstalledLocation.GetFileAsync(@"Assets\dummy.test");
    _ = await Windows.System.Launcher.LaunchFileAsync(file);
}

字符串

更新

如果你想做与WinUI 3 Gallery应用相同的事情,你可以从repo中获取所有代码。
这是其中的一部分:

  • WindowHelper.cs

CreateWindow()方法本质上只是创建一个Window,将其添加到集合中以跟踪它并返回它。

所以,基本上你只需要创建一个Window,设置你的主要内容并激活它。

Window newWindow = new();
newWindow.Content = /* your main content*/
newWindow.Activate();

相关问题