如何在 UWP 的应用中打开另一个应用

Posted

技术标签:

【中文标题】如何在 UWP 的应用中打开另一个应用【英文标题】:How to I open another app within an app in UWP 【发布时间】:2021-08-31 02:37:48 【问题描述】:

所以我试图同时打开最多两个应用程序,用户单击导航菜单上列出的按钮,然后应用程序在***应用程序的空白红色区域中打开,如下所示:

这是此页面的 xaml 代码:

    <Grid Background="#d80202">
        <NavigationView x:Name="Navigation">
            <NavigationView.MenuItems>
                <NavigationViewItem x:Name="Home" Icon="Home" Content="Home"/>
                <NavigationViewItem x:Name="Colours" Icon="Edit" Content="Colours"/>
                <NavigationViewItem Icon="Admin" Content="Security"/>
                <NavigationViewItem Icon="World" Content="Translate"/>
            </NavigationView.MenuItems>
        </NavigationView>
    </Grid>

这是 mainPage 的 .cs 代码:

    public sealed partial class MainPage : Page
    
        public MainPage()
        
            this.InitializeComponent();
            Debug.WriteLine(Windows.ApplicationModel.Package.Current.Id.FamilyName);
        

        private void Navigation_Loaded(object sender, RoutedEventArgs args)
        
        

        private async void NavigateToColoursApp_Click(object sender, RoutedEventArgs args)
        
            var options = new LauncherOptions();
            options.TargetApplicationPackageFamilyName = "e8731a5c-2685-436a-b3c7-983a3b74fb9a_bnk8fdhtvqpqp";
            await Windows.System.Launcher.LaunchUriAsync(new Uri("Colours.xaml"), options);
        

        private void Navigation_Navigate(NavigationView sender, NavigationViewSelectionChangedEventArgs args)
        

            NavigationViewItem item = args.SelectedItem as NavigationViewItem;

            if (item != null)
            
                switch (item.Content)
                
                    case "Home":
                        Frame.Navigate(typeof(MainPage));
                        break;

                    case "Colours":
                        Frame.Navigate(typeof(Colours));
                        break;

                    case "Translate":
                        Frame.Navigate(typeof(Translate));
                        break;
                
            

        
    

对于导航示例,这里是颜色页面的 .cs

        public Colours()
        
            this.InitializeComponent();

            Debug.WriteLine(Windows.ApplicationModel.Package.Current.Id.FamilyName);
        

【问题讨论】:

【参考方案1】:

一个应用不能在另一个应用“内部”打开。应用程序是与其他进程/应用程序隔离运行的进程。

此外,SplitView 控件的Content 属性的类型是UIElement,这实际上意味着您不能将其设置为UIElement 之外的任何其他值。由于Window 或应用程序都不是UIElement,因此您必须在此处重新考虑您的方法。

您应该将其内容分解为可以在任何应用中显示和使用的控件,而不是尝试将整个应用包含到 SplitView 中。

【讨论】:

以上是关于如何在 UWP 的应用中打开另一个应用的主要内容,如果未能解决你的问题,请参考以下文章

如何在 UWP 应用程序中使用此 AdaptiveTrigger

如何更改默认 UWP 应用程序安装文件夹

如何在uwp中读取和写入其他文件夹中的文件?

如何使用 UWP 应用重新启动 Windows PC? [复制]

在 UWP 中移动和替换另一个文件后如何修改文件?

xamarin 形成 UWP 应用程序 - 如何创建一个在概念上看起来/感觉类似于 MS Word 的“打开文件”对话框?