操纵+ Frame.Navigate =崩溃

时间:2016-06-26 07:43:31

标签: windows-phone-8 win-universal-app

我创建了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));
    }

有更聪明的方法吗?

0 个答案:

没有答案