OrientationSensor.ReadingChanged Événement
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Se produit chaque fois que le capteur d’orientation signale une nouvelle lecture de capteur.
// Register
event_token ReadingChanged(TypedEventHandler<OrientationSensor, OrientationSensorReadingChangedEventArgs const&> const& handler) const;
// Revoke with event_token
void ReadingChanged(event_token const* cookie) const;
// Revoke with event_revoker
OrientationSensor::ReadingChanged_revoker ReadingChanged(auto_revoke_t, TypedEventHandler<OrientationSensor, OrientationSensorReadingChangedEventArgs const&> const& handler) const;
public event TypedEventHandler<OrientationSensor,OrientationSensorReadingChangedEventArgs> ReadingChanged;
function onReadingChanged(eventArgs) { /* Your code */ }
orientationSensor.addEventListener("readingchanged", onReadingChanged);
orientationSensor.removeEventListener("readingchanged", onReadingChanged);
- or -
orientationSensor.onreadingchanged = onReadingChanged;
Public Custom Event ReadingChanged As TypedEventHandler(Of OrientationSensor, OrientationSensorReadingChangedEventArgs)
Type d'événement
Exemples
L’exemple suivant montre comment une application UWP créée avec C# et XAML inscrit son gestionnaire d’événements 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);
}
}
L’exemple suivant montre le gestionnaire d’événements 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);
});
}
Remarques
Une application peut inscrire ce gestionnaire d’événements pour obtenir des lectures de capteur. L’application doit établir un ReportInterval souhaité. Cela informe le pilote de capteur que les ressources doivent être allouées pour répondre aux exigences de l’application.
Le capteur OrientationS renvoie un quaternion et une matrice de rotation.