-1

我正在使用 Windows 10 IoT Core 开发一个项目,最近我设法通过使用Windows.ApplicationModel.Core.AppListEntry.LaunchAsync().
我的测试启动器是 Microsoft 的 IoT 示例中使用的启动器,只是对 UI 做了一些小的改动。我用于启动应用程序的代码是:

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

(可以在此处找到相同的代码)

应用程序列表使用 PackageManager API 填充,如上面链接的示例项目“IoTStartApp”所示。当我点击一个项目时,对应的应用程序开始覆盖整个屏幕。
由于除了触摸屏显示器之外我没有任何外部设备,我想在我的启动器中集成导航按钮(主页和返回)。所以实际的问题是,实际的 UWP API 是否允许在我的启动器区域内启动另一个 UWP 应用程序,以便为我的导航栏留出一些空间?(就像一个框架,但不是显示当前应用程序的页面,它应该包含另一个应用程序的页面)。
我的想法是用一个参数来启动一个应用程序,告诉从哪里开始,比如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 迁移(并最终删除)了许多示例和 wiki 页面回购。如果这不可能,还有哪些其他导航解决方案?是否有人成功创建了仅适用于触摸屏显示器的 Windows 10 IoT Core 启动器?

4

1 回答 1

0

AFAIK,这不能在 Windows IoT Core 上完成,因为启动器应用程序或启动的应用程序本身作为前台应用程序运行,并且只有一个前台持有整个 UI。所以“为我的导航栏留一些空间”似乎是不可能的。

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

ShellHomeApp: 在此处输入图像描述

OEMApp2:

在此处输入图像描述

于 2018-07-19T08:27:51.697 回答