Event handling Windows Phone:如何管理震动事件?
加速计被激活(如果我设置了ReadingChanged,它就会工作)。 为什么不处理震动事件Event handling Windows Phone:如何管理震动事件?,event-handling,windows-phone,accelerometer,win-universal-app,shake,Event Handling,Windows Phone,Accelerometer,Win Universal App,Shake,加速计被激活(如果我设置了ReadingChanged,它就会工作)。 为什么不处理震动事件 namespace AppExample { public sealed partial class MainPage : Page { private Accelerometer accel; public MainPage() { this.InitializeComponent(); this.NavigationCacheMode =
namespace AppExample
{
public sealed partial class MainPage : Page
{
private Accelerometer accel;
public MainPage()
{
this.InitializeComponent();
this.NavigationCacheMode = NavigationCacheMode.Required;
accel = Accelerometer.GetDefault();
//accel.ReadingChanged += accel_ReadingChanged;
accel.Shaken += accel_Shaken;
}
void accel_Shaken(Accelerometer sender, AccelerometerShakenEventArgs args)
{
Debug.WriteLine("shaken");
}
}
}
如果您正在运行Windows Phone 8,则不会触发Shaken事件,并且不会根据引发任何错误
否则,它对我来说似乎是一个奇怪的bug,我找不到任何关于它的信息。您可以调用Dispatcher,以便在主线程上显示结果
namespace AppExample
{
public sealed partial class MainPage : Page
{
Accelerometer accel;
public MainPage()
{
this.InitializeComponent();
accel = Accelerometer.GetDefault();
accel.ReadingChanged += accel_ReadingChanged;
accel.Shaken += accel_Shaken;
}
await this.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
{
LabelTest.Text = "Shaken!! " + args.Reading.AccelerationX.ToString();
});
async private void accel_Shaken(object sender, AccelerometerShakenEventArgs e)
{
await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
{
_shakeCount++;
ScenarioOutputText.Text = _shakeCount.ToString();
});
}
}
}
如果您不介意的话,有一个名为ShakePictures的助手库,用于处理windows phone 8的抖动手势。检查此项设备显示Windows Phone 8.1更新“等待”部分放在哪里?然而,我认为您打算使用readingChanged事件,但我想要的是震动事件,由Framework提供。如果我想进行UI更新,我会使用dispatcher,但我使用Debug类向Visual Studio发送消息。问题是从未调用处理程序