В моем приложении UWP у меня есть представление списка в главном окне, и у меня есть дополнительное окно.Каждый элемент представления списка в моем представлении списка - это Grid
, и у меня есть Grid.ContextFlyout
для сетки.ContextFlyout содержит MenuFlyout
с 4 MenuFlyoutItem
.
Я открываю свое приложение, в представлении списка главного окна я щелкаю правой кнопкой мыши элемент.Я вижу открытие ContextFlyout и срабатывание EventHandler<object> Opened
.
Теперь я открываю вторичное окно моего приложения и закрываю главное окно.Снова я открываю главное окно своего приложения, открывая свое приложение из меню «Пуск».
Теперь, если я щелкну правой кнопкой мыши по тому же элементу в представлении списка, которое я щелкнул ранее, я мог видеть, как срабатывает EventHandler<object> Opened
,но всплывающий контекст не открывается в пользовательском интерфейсе.
Эта проблема возникает только в описанном выше сценарии (1. откройте приложение, 2. щелкните правой кнопкой мыши элемент, 3. откройте вторичное окно, 4. закройте главноеокно, 5. снова откройте главное окно приложения из меню «Пуск», 6. щелкните правой кнопкой мыши элемент)
Ниже моя сетка
<Grid
Name="RootGrid">
<Grid.ContextFlyout>
<MenuFlyout
x:Name="OptionsFlyout"
Opening="Flyout_Opening"
Opened="Flyout_Opened"
Closed="Flyout_Closed">
<MenuFlyoutItem Name="Item1"/>
<MenuFlyoutItem Name="Item2"/>
<MenuFlyoutItem Name="Item3"/>
<MenuFlyoutItem Name="Item4"/>
</MenuFlyout>
</Grid.ContextFlyout>
<TextBlock Text="MyGridItem"/>
</Grid>
В моем App.xaml.cs
я используюприведенный ниже код в методе OnLaunched
для восстановления моего главного окна
protected override async void OnLaunched(LaunchActivatedEventArgs e)
{
Window.Current.Dispatcher.RunOnUIThread(async () =>
{
tryShow = await ApplicationViewSwitcher.TryShowAsStandaloneAsync(ApplicationView.GetApplicationViewIdForWindow(CoreApplication.GetCurrentView().CoreWindow), ViewSizePreference.Default, e.CurrentlyShownApplicationViewId, ViewSizePreference.Default);
});
}
Я что-то упускаю при открытии / восстановлении моего главного окна, которое было закрыто ранее?Или можно что-нибудь сделать, чтобы решить эту проблему?
Ниже приведена ссылка на github для примера приложения, созданного мной для воспроизведения этой проблемы. UWP Grid Контекстное меню