如何关闭/隐藏应用程序主窗口?

时间:2017-07-04 20:52:33

标签: uwp

我的应用程序有一个主窗口和辅助窗口。

在某些情况下,我想在用户启动应用时只显示辅助窗口。

问题在于应用程序的主窗口是自动启动的,因此我在编程后打开辅助窗口后,我将同时保留主窗口和辅助窗口。

有什么办法可以隐藏主窗口吗? (即,模仿用户按下"关闭按钮"在主窗口的右上角?)

3 个答案:

答案 0 :(得分:2)

创建辅助视图后,我切换到这个新视图,指定fromViewId作为主视图ID,并使用ApplicationViewSwitchingOptions.ConsolidateViews选项隐藏它:

// Create seprate secondary window
await ApplicationViewSwitcher.TryShowAsStandaloneAsync(secondaryWindowViewId);

// Switch to secondary window just created, which hides the main view
await ApplicationViewSwitcher.SwitchAsync(
    secondaryWindowViewId, 
    mainWindowViewId, 
    ApplicationViewSwitchingOptions.ConsolidateViews);

不是最优雅的解决方案,但它可行:)欢迎更优雅的解决方案!

答案 1 :(得分:1)

为什么关闭/隐藏主窗口?您可以在主窗口中显示辅助窗口的内容(在应用程序启动时创建),如果用户想要显示主窗口,则可以在辅助窗口中显示其内容。

答案 2 :(得分:0)

在主窗口中执行ApplicationView.GetForCurrentView().TryConsolidateAsync()以将其正确关闭,就像您通过单击标题栏中的“关闭”按钮将其关闭一样。与Application.Exit()相比,此方法更可取,因为此方法会挂起应用程序,而Application.Exit()会突然关闭应用程序。同样,通过这种方法关闭应用程序也会记住您应用程序的先前位置和大小,与Application.Exit()不同。