//Handles all property changes from the Tools window private void Tools_PropertyChanged(Object sender, PropertyChangedEventArgs args) { if (Engine != null) { switch (args.PropertyName) { case "TrackType": Engine.VisibleTrackType = Tools.TrackType; Tools.TrackPointsCount = Engine.VisibleTrack.Length; Engine.Display(); break; case "PointerIndex": if (Report != null) { TrackPointer = Engine.VisibleTrack[Tools.PointerIndex]; Engine.TrackPointer.Position = TrackPointer.ToWindowsPoint(); if (Tools.KeepPointerCentered) { MapViewer.PanTo(Engine.TrackPointer.Position); } RaisePropertyChanged("TrackPointer"); } break; case "KeepPointerCentered": Engine.KeepPointerCentered = Tools.KeepPointerCentered; if (Tools.KeepPointerCentered) { MapViewer.PanTo(Engine.TrackPointer.Position); } break; case "LayerVisibilityMask": MapViewer.LayerVisibilityMask = Tools.LayerVisibilityMask; break; default: throw new NotImplementedException(); } } }
public override void Display() { if (!Engine.MapViewer.IsMapLoaded) { switch (Definition.ObjectType) { case "BITMAP": Engine.MapViewer.LoadBitmap(Path.Combine(Directory.GetCurrentDirectory(), Definition.ObjectParameters[0])); break; case "BLANK": Engine.MapViewer.LoadBlank(topLeft.ToWindowsPoint(), bottomRight.ToWindowsPoint()); break; } } if (gridWidth > 0) { Engine.MapViewer.AddOverlay(new CoordinateGridOverlay(gridWidth) { Layer = (uint)OverlayLayers.Grid }); } }