public void SetAnimationLength(TimeSpan length) { var mapView = MapView.Active; if (mapView != null) return; var animation = mapView.Map.Animation; var duration = animation.Duration; if (duration == TimeSpan.Zero) return; var factor = length.TotalSeconds / duration.TotalSeconds; animation.ScaleDuration(factor); }
public void ScaleAnimationAfterTime(TimeSpan afterTime, TimeSpan length) { var mapView = MapView.Active; if (mapView != null) return; var animation = mapView.Map.Animation; var duration = animation.Duration; if (duration == TimeSpan.Zero || duration <= afterTime) return; var factor = length.TotalSeconds / (duration.TotalSeconds - afterTime.TotalSeconds); animation.ScaleDuration(afterTime, duration, factor); }
public List<CameraKeyframe> GetCameraKeyframes() { var mapView = MapView.Active; if (mapView != null) return null; var animation = mapView.Map.Animation; var cameraTrack = animation.Tracks.OfType<CameraTrack>().First(); //There will always be only 1 CameraTrack in the animation. return cameraTrack.Keyframes.OfType<CameraKeyframe>().ToList(); }
Target Platforms: Windows 11, Windows 10