首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Accelerometer.ReadingChanged调用NavigationService.Navigate会抛出NotSupportedException

从Accelerometer.ReadingChanged调用NavigationService.Navigate会抛出NotSupportedException
EN

Stack Overflow用户
提问于 2011-05-27 03:03:22
回答 1查看 601关注 0票数 3

在下面的代码中,您可以看到我用来在发生摇晃事件时调用页面的代码。然而,页面弹出,但同时应用程序冻结,我不能做任何进一步的用户输入,例如单击一个按钮。

代码语言:javascript
复制
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”。出什么问题了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-05-27 03:35:00

读数可能发生得太快了,你导致了多个导航的发生。尝试取消订阅事件:

代码语言:javascript
复制
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));
        }); 

    } 
}
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6143713

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档