在下面的代码中,您可以看到发生抖动事件时用于调用页面的代码。但是,页面会弹出,但同时应用程序冻结,而我无法进行任何其他用户输入,例如单击按钮。
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));
});
}
}