OrientationSensor Class

代表方向感應器。

這個感應器會傳回可在遊戲應用程式中用來調整使用者觀看角度的旋轉矩陣和四元數。

語法


var orientationSensor = Windows.Devices.Sensors.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++]

Metadata

Windows.winmd

請參閱

OrientationSensor 快速入門
OrientationSensor 範例

 

 

顯示:
© 2014 Microsoft