I'm creating an application that we can play with MapControl camera changing looking direction (heading), roll angle, looking elevation (pitch) and field of view also (to zoom in or zoom out the scene).
When I start narrowing the angle of view, the camera starts gaining altitude, when nearer to the ground or surface of the map the more visible is the effect. Same happens when changing Pitch values, at certain angles camera gains altitude also.
I have checked the altitude values of camera location values and MapControl.ActualCamera.Location.Position.Altitude
values are always the same. This effect is more visible when camera is just "stuck" to the ground (despite that there's always like 20 meters or so of difference between the camera and the ground.
This is the code I use to set altitude of the MapCamera, the Pitch, FoV, ...
newCamera = new MapCamera(cameraVR.GroundGeopoint, cameraVR.Heading, cameraVR.Pitch, cameraVR.Roll, cameraVR.FoV);
MapScene mapScene = MapScene.CreateFromCamera(newCamera);
mapPosition.TrySetSceneAsync(mapScene, MapAnimationKind.None);
GroundGeopoint is the location of the camera "stuck" to the ground, even if it's alaways levitating some meters above the ground.