【问题标题】:Calling NavigationService.Navigate from Accelerometer.ReadingChanged throws a NotSupportedException从 Accelerometer.ReadingChanged 调用 NavigationService.Navigate 会引发 NotSupportedException
【发布时间】:2011-05-26 19:03:21
【问题描述】:

在下面您可以看到我用来在发生抖动事件时调用页面的代码。然而,页面弹出,但在同一时刻应用程序冻结,我无法进行任何进一步的用户输入,例如单击按钮。

void accelerometer_ReadingChanged(object sender, AccelerometerReadingEventArgs e)
{
    //double X, Y, Z;
    if (e.X > 1.5)
    {
        Dispatcher.BeginInvoke( () => { 
            NavigationService.Navigate(new Uri("/Bars/DetailBar.xaml", UriKind.Relative));
        } ); 
    } 
}

调试器告诉我,“NavigationFailed”并且存在“System.NotSupportedException”。怎么了?

【问题讨论】:

    标签: c# windows-phone-7 navigation


    【解决方案1】:

    读数可能发生得太快,导致出现多个导航。尝试退订活动:

    void accelerometer_ReadingChanged(object sender, AccelerometerReadingEventArgs e)
    {
        //double X, Y, Z;
        if (e.X > 1.5)
        {
            accelerometer.ReadingChanged -= accelerometer_ReadingChanged;
    
            Dispatcher.BeginInvoke( () => {    
                NavigationService.Navigate(new Uri("/Bars/DetailBar.xaml", UriKind.Relative));
            }); 
    
        } 
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-09
      • 1970-01-01
      相关资源
      最近更新 更多