Windows 带导航栏的 IoT Core 启动器

Windows IoT Core launcher with Navbar

我正在使用 Windows 10 IoT Core 开发一个项目,最近我成功地使用 Windows.ApplicationModel.Core.AppListEntry.LaunchAsync().
从另一个应用程序启动了一个 UWP 应用程序 我的测试启动器是 Microsoft 的 IoT 示例中使用的启动器,有一些小的 UI 更改。我用于启动应用程序的代码是:

void MainPage::StackPanel_Tapped(Object^ sender, TappedRoutedEventArgs^ e) {
    auto appItem = dynamic_cast<AppListItem^>(appList->SelectedItem);
    if (appItem) {
        appItem->AppEntry->LaunchAsync();
    } 
}

(可以找到相同的代码here

应用程序列表是使用 PackageManager API 填充的,如上面链接的示例项目 "IoTStartApp" 所示。 当我点击一个项目时,相应的应用程序会启动并覆盖整个屏幕。
由于除了触摸屏显示器外我没有任何外部设备,所以我想将导航按钮(主页和返回)集成到我的启动器中。 所以实际的问题是,实际的 UWP API 是否允许在我的启动器的某个区域内启动另一个 UWP 应用程序,以便为我的导航栏留下一些 space? (像一个框架,但不是显示当前应用程序的页面,它应该包含另一个应用程序的页面)。
我的想法是用一个参数来启动一个应用程序,比如 LaunchInContainerAsync(Frame frame),其中 frame 是我的容器(想象一个页面只有这个容器和我的两个导航按钮在底部,在另一个网格中)。 XAML 会是这样的:

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="*"/>
        <RowDefinition Height="30"/>
    </Grid.RowDefinitions>
    <Frame x:Name="ApplicationFrame" Grid.Row="0" Margin="0"/>
    <Grid x:Name="NavBar" Grid.Row="1" Margin="0">
        <!-- Here are my other UI elements that should stay visible during the execution of the "launched" application, such as navigation buttons. -->
    </Grid>
</Grid>

我问这个是因为我记得(但我肯定错了)微软有一些例子展示了这种应用程序启动解决方案,但现在他们迁移(并最终删除)了许多例子和维基页面来自他们的文档和 GitHub 回购协议。 如果这不可能,还有哪些其他导航解决方案?有人成功地为 Windows 10 IoT Core 创建了一个仅适用于触摸屏显示器的启动器吗?

AFAIK,这无法在 Windows IoT Core 上完成,因为启动器应用程序或启动的应用程序本身 运行 作为前台应用程序,只有一个前台占据整个 UI 在手。所以 "leave some space for my navigation bar" 似乎不可能。

但作为解决方法,您可以将启动器应用(如以下示例中的家庭应用)的 URI 或其显示名称和描述从 AppListEntry API 添加到您要启动的其他应用,因此新启动的应用程序可以有机会返回到启动器应用程序。像这个示例一样:“IoTHomeApp”。

ShellHomeApp:

OemApp2: