private async void Gyroscope_ReadingChanged(object sender, GyroscopeChangedEventArgs e)
        {
            if (MouseServiceWrapper == null)
            {
                return;
            }
            if (!_MouseMoving)
            {
                return;
            }
            var angularVelocity           = e.Reading.AngularVelocity;
            var angluarVelocityQuaternion = AngluarVelocityToQuaternion(angularVelocity);
            var angluarVelocityMat        = Matrix4x4.CreateFromQuaternion(angluarVelocityQuaternion);

            //var matrix = Matrix4x4.Transpose(Matrix4x4.CreateFromQuaternion(LatestOrientation));
            var deviceToWorldMat             = Matrix4x4.Transpose(Matrix4x4.CreateFromQuaternion(LatestOrientation));
            var angluarVelocityMatWolrdspace = Matrix4x4.Multiply(angluarVelocityMat, deviceToWorldMat);


            //var moveAmount = new Vector2(transformedAngularVelocity.Z, transformedAngularVelocity.X);
            var moveAmount = new Vector2(angularVelocity.Z, -angularVelocity.X);
            //var moveAmount = new Vector2(Vector3.Transform(Vector3.UnitX, angluarVelocityQuaternion).Z, -Vector3.Transform(Vector3.UnitX, angluarVelocityQuaternion).X);
            await MouseServiceWrapper.MoveMouseAsync(moveAmount);
        }
 private async void MouseStick_OnMove(object sender, Vector2 e)
 {
     var moveAmount = -e * 0.15f;
     await MouseServiceWrapper.MoveMouseAsync(moveAmount);
 }