我创建了custom menu,在刷卡后显示 它可以使用ManipulationDelta事件移动,代码如
Canvas.SetTop(topmenu, Canvas.GetTop(topmenu) + e.Delta.Translation.Y);
在此菜单中有一个按钮,点击此按钮后会加载另一个页面:
private void btnSomeButton_Click(object sender, RoutedEventArgs e)
{
this.Frame.Navigate(typeof(BlankPage1));
}
在这里,我的应用程序崩溃了。似乎因为操纵事件而发生。 我试图用
取消订阅操纵事件 private void btnSomeButton_Click(object sender, RoutedEventArgs e)
{
topmenu.ManipulationDelta -= topmenu_ManipulationDelta;
topmenu.ManipulationCompleted -= topmenu_ManipulationCompleted;
topmenu.ManipulationMode = ManipulationModes.None;
this.Frame.Navigate(typeof(BlankPage1));
}
但没有运气。
目前只有延迟才能救我:
private async void btnSomeButton_Click(object sender, RoutedEventArgs e)
{
topmenu.ManipulationDelta -= topmenu_ManipulationDelta;
topmenu.ManipulationCompleted -= topmenu_ManipulationCompleted;
topmenu.ManipulationMode = ManipulationModes.None;
await System.Threading.Tasks.Task.Delay(TimeSpan.FromSeconds(0.5));
this.Frame.Navigate(typeof(BlankPage1));
}
有更聪明的方法吗?