我有一个打开新窗口的应用程序。如果关闭了原始窗口,然后用户启动了该应用程序(例如,从开始菜单中启动)-TryShowAsStandaloneAsync
无法打开新窗口(为什么?)。所以我想“复兴”原始的。但是,尽管我使用Window.Current.Activate();
和frame.Navigate(...);
-Window.Current.Visible
始终为false
(并且不再显示该窗口)。
那么如何才能“恢复”关闭的窗口? (或在关闭的窗口中使用TryShowAsStandaloneAsync
。)
最佳答案
我认为TryShowAsStandaloneAsync
尝试将主视图用作锚视图(即,一个相对于其放置新窗口的窗口)。
一旦关闭主窗口,TryShowAsStandaloneAsync
将失败,因为它没有锚视图。
解决方法是通过TryShowAsStandaloneAsync的重载指定打开的视图的anchorViewId
(在关闭主窗口之前打开的新窗口之一):
await ApplicationViewSwitcher.TryShowAsStandaloneAsync(
viewIdToShow, // Id of a new view, or of your hidden main view
ViewSizePreference.Default,
anchorViewId, // Id of one of your visible windows
ViewSizePreference.Default);
从this answer。