如何解决从Accelerometer.ReadingChanged调用NavigationService.Navigate会引发NotSupportedException
| 在下面的代码中,您可以看到发生抖动事件时用于调用页面的代码。但是,页面会弹出,但同时应用程序冻结,而我无法进行任何其他用户输入,例如单击按钮。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 \”。怎么了?
解决方法
读数可能发生得太快,并且您正在引起多个导航。尝试退订该事件:
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));
});
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。