I am drawing a rectangle to create a bounding box to zoom in to using the TrackOverlay. I have noticed that on occasion, the event fires twice, and I am wondering if it is possibly a bug or a mishap on my code that causes this. I use two Subs to zoom into an area but the AreaZoomTrackEnded sub fires twice on occasion.
I have since added a check for the InternalFeatures of the TrackShapeLayer before continuing to prevent an IndexOutOfRangeException. I would think that removing the handler and turning off the TrackMode would stop it from somehow trying to fire TrackEnded again. If there is something differently that should be done, let me know.
PrivateSubZoomToArea(ByValsenderAsObject,ByValeAsRoutedEventArgs)HandlestbAreaZoomTo.ClickDirectCast(sender, ToggleButton).IsChecked =False
'add handler for trackoverlay endedAddHandlerWpfMap_Main.TrackOverlay.TrackEnded,AddressOfAreaZoomTrackEnded
'change the track settings // display and styleWpfMap_Main.TrackOverlay.TrackShapeLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle = AreaStyles.CreateSimpleAreaStyle(GeoColor.StandardColors.Transparent, GeoColor.StandardColors.Red, 2, LineDashStyle.Dash)WpfMap_Main.TrackOverlay.TrackMode = TrackMode.Rectangle
EndSub
PrivateSubAreaZoomTrackEnded(ByValsenderAsObject,ByValeAsTrackEndedTrackInteractiveOverlayEventArgs)'check for features in the trackshapelayer, if there are no features, exit the sub and allow for continued drawingIfWpfMap_Main.TrackOverlay.TrackShapeLayer.InternalFeatures.Count = 0ThenExitSubEndIf
'remove handlerRemoveHandlerWpfMap_Main.TrackOverlay.TrackEnded,AddressOfAreaZoomTrackEnded
'turn off trackmodeWpfMap_Main.TrackOverlay.TrackMode = TrackMode.None
'get the shapeDimtrackPolyAsPolygonShape =DirectCast(WpfMap_Main.TrackOverlay.TrackShapeLayer.InternalFeatures(0).GetShape, PolygonShape)
'clear the track shapesWpfMap_Main.TrackOverlay.TrackShapeLayer.InternalFeatures.Clear()
'set the new extentWpfMap_Main.CurrentExtent = trackPoly.GetBoundingBox
'refresh the mapWpfMap_Main.Refresh()
EndSub