gpt4 book ai didi

windows - 在 Windows 10 通用应用程序中从 MainPage 打开一个新的框架窗口?

转载 作者:可可西里 更新时间:2023-11-01 13:31:44 26 4
gpt4 key购买 nike

当我在通用应用程序的主窗口中单击一个按钮时,如何打开一个包含另一个 xaml 页面的新框架窗口?

最佳答案

您可以从 GitHub 上的 Microsoft 官方示例中查看有关如何执行此操作的示例 here但我会在这里快速总结。另一个更简单的实现可以在 Mike Taulty's Blog 上找到.

由于您没有指定开发语言,我假设使用 C# 和 XAML。

在 XAML 中创建您的按钮,单击该按钮将创建一个新窗口:

<Button  
Content="Create"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Click="OnCreate" />

在后面的代码中,添加您的 OnCreate 点击处理程序:

async void OnCreate(object sender, RoutedEventArgs e)  
{
CoreApplicationView newCoreView = CoreApplication.CreateNewView();

ApplicationView newAppView = null;
int mainViewId = ApplicationView.GetApplicationViewIdForWindow(
CoreApplication.MainView.CoreWindow);

await newCoreView.Dispatcher.RunAsync(
CoreDispatcherPriority.Normal,
() =>
{
newAppView = ApplicationView.GetForCurrentView();
Window.Current.Content = new SubWindowUserControl();
Window.Current.Activate();
});

await ApplicationViewSwitcher.TryShowAsStandaloneAsync(
newAppView.Id,
ViewSizePreference.UseHalf,
mainViewId,
ViewSizePreference.UseHalf);
}

这将创建一个新窗口,并获取原始窗口的应用程序 View ID 供您引用。然后等待分派(dispatch)的线程运行(在新窗口的 UI 线程中)以获取窗口包含的新 View ,它以编程方式向其中添加新的 SubWindowUserControl,然后激活(您必须记得这样做)。然后使用一些标准参数在新的独立窗口中显示新窗口。

查看 API 文档 here有关 ApplicationViewSwitcher 类的更多详细信息。

要获取此代码并使其显示一个新的 XAML 页面,您可以创建新页面并在 OnCreate 代码中更改在新窗口上运行的异步任务,如下所示:

  await newCoreView.Dispatcher.RunAsync(  
CoreDispatcherPriority.Normal,
() =>
{
newAppView = ApplicationView.GetForCurrentView();
Window.Current.Content = new Frame();
(Window.Current.Content as Frame).Navigate(typeof(<your_page>));
Window.Current.Activate();
});

这不是将新的自定义 XAML 元素显示为其内容,而是创建一个新的 Frame,然后导航它以显示您的 XAML 页面。

Hello Second Window!

希望这对您有所帮助!

关于windows - 在 Windows 10 通用应用程序中从 MainPage 打开一个新的框架窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32692792/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com