Я нашел решение своей проблемы.Моим требованием было, когда главное окно приложения было закрыто, но вторичное окно все еще открыто, и пользователь пытается открыть приложение из меню «Пуск» или, щелкнув значок приложения, я должен открыть основной вид приложения.в отдельном окне, не закрывая вторичный вид / окно, где в данный момент находится пользователь.Другими словами, просто поместите главное окно приложения впереди и позвольте второму окну быть там, как оно находится позади главного окна.Так что теперь у нас будет 2 окна на экране:
1. Главное окно
2. Уже открытое дополнительное окно.
Я добился этого с помощью приведенного ниже кода.
В файле App.xaml.cs
, метод OnLaunched(LaunchActivatedEventArgs e)
, аргумент LaunchActivatedEventArgs e
имеет свойство с именем CurrentlyShownApplicationViewId
, которое дает идентификатор представления, где в данный момент находится пользователь (если открыто какое-либо представление приложения).).
ApplicationView.GetApplicationViewIdForWindow(CoreApplication.GetCurrentView().CoreWindow)
дает идентификатор основного вида приложения.
С этими двумя идентификаторами я могу открыть главное окно своего приложения с помощью приведенного нижекод.
Window.Current.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, async () =>
{
await ApplicationViewSwitcher.TryShowAsStandaloneAsync(
ApplicationView.GetApplicationViewIdForWindow(
CoreApplication.GetCurrentView().CoreWindow),
ViewSizePreference.Default, e.CurrentlyShownApplicationViewId,
ViewSizePreference.Default);
});
ApplicationViewSwitcher.TryShowAsStandaloneAsync
возвращает главное окно моего приложения впереди, в отдельном окне, оставляя вторичное окно без изменений.Так что теперь у пользователя есть 2 окна - главное окно приложения и существующее дополнительное окно.