导出 (0) 打印
全部展开
信息
您所需的主题如下所示。但此主题未包含在此库中。

OrientationSensor Class

表示方向传感器。

此传感器返回可用于调整在游戏应用程序的用户的角度的旋转矩阵和四元数。

语法


Public NotInheritable Class OrientationSensor

特性

[DualApiPartition()]
[MarshalingBehavior(Agile)]
[Threading(Both)]
[Version(0x06020000)]

成员

OrientationSensor类 具有这些类型的成员:

事件

OrientationSensor类 具有这些事件。

事件说明
ReadingChanged Occurs each time the orientation sensor reports a new sensor reading.

 

方法

The OrientationSensor 类 具有这些方法。 对于 C#、Visual Basic 和 C++,它还继承方法于Object 类.

方法说明
GetCurrentReading Gets the current sensor reading
GetDefault Gets the default orientation sensor.

 

属性

OrientationSensor类 具有这些属性。

属性访问类型说明

MinimumReportInterval

只读Gets the minimum report interval supported by the sensor.

ReportInterval

读/写Gets or sets the report interval supported by the sensor.

 

备注

下面的示例演示使用 XAML 和 C# 生成的 Windows 应用商店应用如何使用 GetDefault 方法建立到方向传感器的连接。如果未找到方向传感器,则方法返回一个 null 值。


_sensor = OrientationSensor.GetDefault();


下面的示例演示使用 XAML 生成的 Windows 应用商店应用如何注册 ReadingChanged 事件处理程序。


private void ScenarioEnable(object sender, RoutedEventArgs e)
{
    if (_sensor != null)
    {
        // Establish the report interval
        _sensor.ReportInterval = _desiredReportInterval;

        Window.Current.VisibilityChanged += new WindowVisibilityChangedEventHandler(VisibilityChanged);
        _sensor.ReadingChanged += new TypedEventHandler<OrientationSensor, OrientationSensorReadingChangedEventArgs>(ReadingChanged);

        ScenarioEnableButton.IsEnabled = false;
        ScenarioDisableButton.IsEnabled = true;
    }
    else
    {
        rootPage.NotifyUser("No orientation sensor found", NotifyType.StatusMessage);
    }
}


下面的示例演示 ReadingChanged 事件处理程序。


async private void ReadingChanged(object sender, OrientationSensorReadingChangedEventArgs e)
{
    await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
    {
        OrientationSensorReading reading = e.Reading;

        // Quaternion values
        SensorQuaternion quaternion = reading.Quaternion;   // get a reference to the object to avoid re-creating it for each access
        ScenarioOutput_X.Text = String.Format("{0,8:0.00000}", quaternion.X);
        ScenarioOutput_Y.Text = String.Format("{0,8:0.00000}", quaternion.Y);
        ScenarioOutput_Z.Text = String.Format("{0,8:0.00000}", quaternion.Z);
        ScenarioOutput_W.Text = String.Format("{0,8:0.00000}", quaternion.W);

        // Rotation Matrix values
        SensorRotationMatrix rotationMatrix = reading.RotationMatrix;
        ScenarioOutput_M11.Text = String.Format("{0,8:0.00000}", rotationMatrix.M11);
        ScenarioOutput_M12.Text = String.Format("{0,8:0.00000}", rotationMatrix.M12);
        ScenarioOutput_M13.Text = String.Format("{0,8:0.00000}", rotationMatrix.M13);
        ScenarioOutput_M21.Text = String.Format("{0,8:0.00000}", rotationMatrix.M21);
        ScenarioOutput_M22.Text = String.Format("{0,8:0.00000}", rotationMatrix.M22);
        ScenarioOutput_M23.Text = String.Format("{0,8:0.00000}", rotationMatrix.M23);
        ScenarioOutput_M31.Text = String.Format("{0,8:0.00000}", rotationMatrix.M31);
        ScenarioOutput_M32.Text = String.Format("{0,8:0.00000}", rotationMatrix.M32);
        ScenarioOutput_M33.Text = String.Format("{0,8:0.00000}", rotationMatrix.M33);
    });
}


要求

最低支持客户端

Windows 8 [Windows 应用商店应用程序, 桌面应用程序]

最低支持服务器

不支持“无” [Windows 应用商店应用程序, 桌面应用程序]

最低支持电话

Windows Phone 8

命名空间

Windows.Devices.Sensors
Windows::Devices::Sensors [C++]

元数据

Windows.winmd

另请参见

OrientationSensor 快速入门
OrientationSensor 示例

 

 

显示:
© 2014 Microsoft