在下面,您可以看到我在震动事件发生时用来调用页面的代码。但是,页面弹出,但在同一时刻应用程序冻结,我无法再进行任何用户输入,例如单击按钮。
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”。出了什么问题?
答案 0 :(得分:7)
读数可能发生得太快,导致多次导航发生。尝试取消订阅活动:
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));
});
}
}