Accelerometer sensor; private void ApplicationBarMenuItem_Click_2(object sender, EventArgs e) { //NavigationService.Navigate(new Uri("/Gyroscope_Test.xaml", UriKind.Relative)); sensor = new Accelerometer() { TimeBetweenUpdates = TimeSpan.FromSeconds(1) }; sensor.CurrentValueChanged += new EventHandler<SensorReadingEventArgs<AccelerometerReading>>(sensor_CurrentValueChanged); if (sensor.State == SensorState.NotSupported) { MessageBox.Show("本手机不支持加速计。"); return; } try { sensor.Start(); } catch (AccelerometerFailedException ex) { MessageBox.Show(ex.Message.ToString()); } } void sensor_CurrentValueChanged(object sender, SensorReadingEventArgs<AccelerometerReading> e) { Dispatcher.BeginInvoke(delegate { if (e.SensorReading.Acceleration.X > 0.4) { if (pivot.SelectedIndex == 4) { pivot.SelectedIndex = 0; } else { pivot.SelectedIndex = pivot.SelectedIndex + 1; } } if (e.SensorReading.Acceleration.X < -0.4) { if (pivot.SelectedIndex == 0) { pivot.SelectedIndex = 4; } else { pivot.SelectedIndex = pivot.SelectedIndex - 1; } } pivot.Title = string.Format("[{0:0.00},{1:0.00},{2:0.00}] at {3}", e.SensorReading.Acceleration.X, e.SensorReading.Acceleration.Y, e.SensorReading.Acceleration.Z, e.SensorReading.Timestamp.TimeOfDay.ToString()); }); }