【问题标题】:C# UWP closing application multiple viewsC# UWP 关闭应用程序多个视图
【发布时间】:2017-03-10 13:12:30
【问题描述】:

我有一个动态创建另一个视图的 UWP 应用。但是,问题是当我关闭第一个窗口时,第二个窗口仍然打开。

使用此代码我正在创建新视图:

        CoreApplicationView newView = CoreApplication.CreateNewView();
        int newViewId = 0;
        await newView.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
        {
            Frame frame = new Frame();
            frame.Navigate(typeof(SecondPage), null);
            Window.Current.Content = frame;
            // You have to activate the window in order to show it later.
            Window.Current.Activate();

            newViewId = ApplicationView.GetForCurrentView().Id;
        });
        bool viewShown = await ApplicationViewSwitcher.TryShowAsStandaloneAsync(newViewId);

当用户关闭第一个窗口时如何关闭应用程序?

【问题讨论】:

    标签: c# uwp multiple-views application-close


    【解决方案1】:

    请参考Show multiple views for an app

    如果辅助视图打开,则可以隐藏主视图的窗口 - 例如,通过单击窗口标题栏中的关闭 (x) 按钮 - 但其线程仍处于活动状态。在主视图的 Window 上调用 Close 会导致出现 InvalidOperationException。 (使用Application.Exit 关闭您的应用程序。)如果主视图的线程终止,则应用程序关闭。

    private void Btn_Click(object sender, RoutedEventArgs e)
    {
        Application.Current.Exit();
    }
    

    您还可以通过指定ApplicationViewSwitchingOptions 的值来选择是否要关闭初始窗口并将其从任务栏中删除。这样您的桌面上就会有一个视图。您只需要关闭它即可关闭应用程序。

     private int currentViewId = ApplicationView.GetForCurrentView().Id;
     private async void ShowNewView()
     {
         CoreApplicationView newView = CoreApplication.CreateNewView();
         int newViewId = 0;
         await newView.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
         {
             Frame frame = new Frame();
             frame.Navigate(typeof(SecondPage), null);
             Window.Current.Content = frame;
             Window.Current.Activate();
             newViewId = ApplicationView.GetForCurrentView().Id;
         });
    
         await ApplicationViewSwitcher.SwitchAsync(newViewId, currentViewId, ApplicationViewSwitchingOptions.ConsolidateViews);
     }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-06
      • 2019-06-10
      • 2022-01-09
      • 2023-02-14
      • 2012-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多