等待MenuItem添加的默认动画完成

时间:2018-04-14 13:07:23

标签: c# uwp

我目前正在创建一个NavigationViewItem并将其添加到现有的NavigationView中。之后我想导航到它。

 NavigationViewItem item = new NavigationViewItem() {/*...*/};
 NavView.MenuItems.Add(item);
 ContentFrame.Navigate(typeof(Project), item);
 var menuItem = NavView.MenuItems
                .OfType<NavigationViewItem>()
                .Where(item => item.Tag.ToString() == tag)
                .First();
 NavView.SelectedItem = menuItem;

但是在我将它添加到列表并选择菜单项后,它仍然执行“添加”动画,因此它不会触发“活动菜单项”动画或者更确切地说是“蓝色”指示器左侧:

NavigationView with active indicator

所以最后,指标丢失了。再次单击该菜单项也不会使其显示,只有在远离它之后才会显示。

1 个答案:

答案 0 :(得分:1)

刚刚测试了你的代码,它确实为项目“管道”制作了“类似蠕虫”的动画,因为它将项目添加到菜单中。

这是一个简单的方法,但不知道这是一个好的代码,但不知何故对我有用。

  await Task.Delay(500);

在添加项目之后和选择该项目之前添加了代码。

编辑:

NavigationViewItem item = new NavigationViewItem()  { ... };
nvMain.MenuItems.Add(item);
await Task.Delay(500);
SelectAddedItem(item);    //Method to select the item