WinUI3(XAML+C#)点击按钮新建应用窗口的实现方案(适配新版)
在WinUI3(应用设计器创建项目)中运行时新建窗口的解决方案
实现步骤
准备目标页面
若需在新窗口展示自定义内容,先创建对应XAML页面(比如NewWindowPage.xaml);如果要复用主窗口内容,直接使用主窗口的根页面类型即可。编写按钮点击事件代码
在页面后台代码(如MainPage.xaml.cs)中,为“打开新窗口”按钮添加点击逻辑:private async void OpenNewWindowButton_Click(object sender, RoutedEventArgs e) { // 创建新的AppWindow实例 var appWindow = await AppWindow.TryCreateAsync(); // 初始化窗口内容框架 var contentFrame = new Frame(); // 替换为你要显示的页面类型 contentFrame.Content = new NewWindowPage(); // 将内容附加到AppWindow ElementCompositionPreview.SetAppWindowContent(appWindow, contentFrame); // 显示新窗口 await appWindow.TryShowAsync(); }
关键注意事项
- 确保项目安装了最新版
Microsoft.WindowsAppSDKNuGet包,旧版本可能存在API兼容问题。 - 使用Packaged项目模板时,默认已支持多窗口,无需额外配置权限;若窗口无法创建,可检查
Package.appxmanifest中是否启用必要功能。 - 若要让新窗口和主窗口保持相同样式或状态,可直接复用主窗口的根页面实例,或克隆状态后创建新实例。
内容的提问来源于stack exchange,提问作者jan-peter Poppe
相关产品推荐
相关产品推荐

