C # origen de sprites directx

Tengo este problema cuando mi origen de rotación de Sprite está fijo en la esquina superior izquierda de la ventana (lo mismo consprite Dibujar ysprite.Draw2D) De cualquier manera, si cambio el centro de rotación, todavía está en la parte superior izquierda. Necesito sprite para rotar alrededor de su eje Z.

Editar: He intentado esto:

    hereMatrix pm = Matrix.Translation(_playerPos.X + 8, _playerPos.Y + 8, 0);
    sprite.Transform = Matrix.RotationZ(_angle) * pm;
    sprite.Draw(playerTexture, textureSize, new Vector3(8, 8, 0), new Vector3(_playerPos.X, _playerPos.Y, 0), Color.White);

Pero no parece funcionar bien ...