繁体   English   中英

Windows Phone 8.1加速度计和更新UI

[英]Windows phone 8.1 Accelerometer and updating UI

我在查找有关使用加速度计的正确方法以及使用分派器更新文本框的文档或示例时遇到问题。 似乎应该很容易,但是所有示例都是8.0,显然使用了Microsoft.Devices.Sensors;。

显然您应该使用Windows.Devices.Sensors; 您会认为它们是相同的,但是Start()和Stop方法之类的东西不再存在。 我试图使用Microsoft AccelerometerHelper类从微软在这里

另外,较早的Dispatcher现在是基于此的 CoreDispatcher吗?

也试图使用此库,但它也使用旧的名称空间: http : //code.msdn.microsoft.com/wpapps/Shake-Gesture-Library-04c82d5f

谁能提供一个示例或向我介绍一些有关在8.1中如何注册加速计事件并使用x轴等内容更新UI文本框的信息?

非常感谢你!

对于Windows Phone 8.1 Silverlight应用程序,请尝试使用此代码。 它使用Microsoft.Devices.Sensors Accelerometer

// initialize
Accelerometer accelerometer = new Accelerometer();
accelerometer.CurrentValueChanged += accelerometer_CurrentValueChanged;
accelerometer.Start();

void accelerometer_CurrentValueChanged(object sender, SensorReadingEventArgs<AccelerometerReading> e)
{
    Dispatcher.BeginInvoke(() =>
    {
        XAxisText.Text = e.SensorReading.Acceleration.X.ToString();
    });
}

对于Windows Phone Universal应用程序,请使用以下代码:

Accelerometer accelerometer = Accelerometer.GetDefault();
accelerometer.ReadingChanged += accelerometer_ReadingChanged; 

async void accelerometer_ReadingChanged(Accelerometer sender, AccelerometerReadingChangedEventArgs args)
{
    await this.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
    {
        XAxisText.Text = args.Reading.AccelerationX.ToString();
    });            
}

我遇到了同样的问题,无法弄清楚Shake事件的工作方式。 然后,我在Microsoft网站http://code.msdn.microsoft.com/Windows-Phone-81-samples-08631ca7上找到了这个示例。因此,似乎我们必须编写自己的Shake Event实现)

我最终在每个Microsoft的特定应用程序中使用了Silverlight 8.1。 他们正在“研究”为什么电话API是唯一一个没有震动事件的API。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM