A synchronous (blocking) call which executes the specified delegate and returns a new Geometry at the clicked location. The tracked shape will have the specified color and line width (where appropriate).

Namespace:  ESRI.ArcGISExplorer.Mapping

Assembly:  ESRI.ArcGISExplorer (in ESRI.ArcGISExplorer.dll) Version: (


public Geometry TrackMoveGeometry(
	Geometry geometry,
	Color color,
	double width,
	TrackDelegate trackDelegate
Visual Basic (Declaration)
Public Function TrackMoveGeometry ( _
	geometry As Geometry, _
	color As Color, _
	width As Double, _
	trackDelegate As TrackDelegate _
) As Geometry


Type: ESRI.ArcGISExplorer.Geometry..::.Geometry

The Geometry to be moved.
Type: System.Drawing..::.Color

The color of the tracked Geometry while it is being moved.
Type: System..::.Double

The width in pixels of the tracked line shown during the tracking operation. Default is 1, maximum is 10. Note it does not apply if the tracked geometry is a Point.
Type: ESRI.ArcGISExplorer.Mapping..::.TrackDelegate

A tracking delegate that contains a method to be called when the user interacts with the display.

Return Value

A new Geometry at the clicked location. The shape is based on the input geometry but translated to the new location.


This method will block the user interface (UI) thread until the user has clicked on the display. The method can be cancelled if the ESC key is pressed after the method has been called or the CancelTracking()()() method is called; in this case the method will return nullNothingnullptra null reference (Nothing in Visual Basic).

If you are using this method to move a Graphic or Note remember that you will need to update the Geometry property with that of the tracked geometry to actually move it, see the code example below.

Alternatively you may wish to use an asynchronous equivalent, see the BeginTrackMoveGeometry methods.

Version Information: This method is supported from version


The code below demonstrates how to use the TrackMoveGeometry methods to move a Graphic to a new location.
//Return the map display
ESRI.ArcGISExplorer.Mapping.MapDisplay disp = ESRI.ArcGISExplorer.Application.Application.ActiveMapDisplay;
Graphic targetGraphic = null;

//Find a particular Graphic by it's Tag property
foreach (Graphic graphic in disp.Graphics)
  if (graphic.Tag.ToString() == "LineTarget")
    targetGraphic = graphic;

if (targetGraphic != null)
  //Track the 'LineTarget' geometry to a new location
  ESRI.ArcGISExplorer.Geometry.Geometry movedTargetGeometry = disp.TrackMoveGeometry(targetGraphic.Geometry);
  //Update the Graphics Geometry to be the tracked geoemtry
  targetGraphic.Geometry = movedTargetGeometry;
'Return the map display
Dim disp As ESRI.ArcGISExplorer.Mapping.MapDisplay = ESRI.ArcGISExplorer.Application.Application.ActiveMapDisplay
Dim targetGraphic As Graphic = Nothing

'Find a particular Graphic by its Tag property
For Each graphic As Graphic In disp.Graphics
  If graphic.Tag.ToString() = "LineTarget" Then
    targetGraphic = graphic
    Exit For
  End If

If targetGraphic IsNot Nothing Then
  'Track the 'LineTarget' geometry to a new location
  Dim movedTargetGeometry As ESRI.ArcGISExplorer.Geometry.Geometry = disp.TrackMoveGeometry(targetGraphic.Geometry)
  'Update the Graphics Geometry to be the tracked geoemtry
  targetGraphic.Geometry = movedTargetGeometry
End If

See Also