This document is archived and information here might be outdated.  Recommended version.


Set MOLE Layer Size Snippet (ArcObjects .NET 10.4 SDK)
ArcObjects Library Reference

Set MOLE Layer Size Snippet

Sets/Changes the size of graphics in a MOLE layer (Force Element or Tactical Graphic)

[C#]
///<summary>Sets/Changes the size of graphics in a MOLE layer (Force Element or Tactical Graphic)</summary>
///  
///<param name="cachedGraphicLayer">An ICachedGraphicLayer interface that is a MOLE layer.</param>
///<param name="symbolSize">A System.Double that is the size of graphics (in map units). Example: 0.5</param>
///<param name="textSize">A System.Double that is size of labels of graphics in the layer (in map units) only used if a Tactical Graphic layer is provided. Example: 0.5</param>
///   
///<returns>A System.Boolean where true if successful, false otherwise.</returns>
///   
///<remarks></remarks>
public System.Boolean SetMoleLayerSize(ESRI.ArcGIS.DefenseSolutions.ICachedGraphicLayer cachedGraphicLayer, System.Double symbolSize, System.Double textSize)
{

  // Important: 
  // The consumer of this procedure must still call
  // MapControl.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeography, cachedGraphicLayer, null); 
  // (or the equivalent) in order for the size change to appear on the map.

  System.Boolean success=false;

  if (cachedGraphicLayer == null)
    return false;

  ESRI.ArcGIS.DefenseSolutions.IForceElementLayer forceElementLayer=cachedGraphicLayer as ESRI.ArcGIS.DefenseSolutions.IForceElementLayer;

  if (forceElementLayer != null)
  {
    forceElementLayer.Size=symbolSize;
    forceElementLayer.SizeIsRatio=false;
    success=true;
  }
  else
  {
    ESRI.ArcGIS.DefenseSolutions.ITacticalGraphicLayer tacticalGraphicLayer=cachedGraphicLayer as ESRI.ArcGIS.DefenseSolutions.ITacticalGraphicLayer;

    if (tacticalGraphicLayer == null)
      return false; // failed

      tacticalGraphicLayer.TextSize=textSize;

      ESRI.ArcGIS.DefenseSolutions.ICachedGraphicLayer2 cachedGraphicLayer2=tacticalGraphicLayer as ESRI.ArcGIS.DefenseSolutions.ICachedGraphicLayer2;
      cachedGraphicLayer2.Size=symbolSize;

      success=true;
  }

  cachedGraphicLayer.Refresh();

  return success;
}
[Visual Basic .NET]
'''<summary>Sets/Changes the size of graphics in a MOLE layer (Force Element or Tactical Graphic)</summary>
'''  
'''<param name="cachedGraphicLayer">An ICachedGraphicLayer interface that is a MOLE layer.</param>
'''<param name="symbolSize">A System.Double that is the size of graphics (in map units). Example: 0.5</param>
'''<param name="textSize">A System.Double that is size of labels of graphics in the layer (in map units) only used if a Tactical Graphic layer is provided. Example: 0.5</param>
'''   
'''<returns>A System.Boolean where true if successful, false otherwise.</returns>
'''   
'''<remarks></remarks>
Public Function SetMoleLayerSize(ByVal cachedGraphicLayer As ESRI.ArcGIS.DefenseSolutions.ICachedGraphicLayer, ByVal symbolSize As System.Double, ByVal textSize As System.Double) As System.Boolean

  ' Important: 
  ' The consumer of this procedure must still call
  ' MapControl.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeography, cachedGraphicLayer, Nothing); 
  ' (or the equivalent) in order for the size change to appear on the map.

  Dim success As System.Boolean=False

  If cachedGraphicLayer Is Nothing Then
    Return False
  End If

  If TypeOf cachedGraphicLayer Is ESRI.ArcGIS.DefenseSolutions.IForceElementLayer Then

    Dim forceElementLayer As ESRI.ArcGIS.DefenseSolutions.IForceElementLayer=CType(cachedGraphicLayer, ESRI.ArcGIS.DefenseSolutions.IForceElementLayer) ' Explicit Cast
    forceElementLayer.Size=symbolSize
    forceElementLayer.SizeIsRatio=False
    success=True

  Else

    Dim tacticalGraphicLayer As ESRI.ArcGIS.DefenseSolutions.ITacticalGraphicLayer=CType(cachedGraphicLayer, ESRI.ArcGIS.DefenseSolutions.ITacticalGraphicLayer) ' Explicit Cast
    tacticalGraphicLayer.TextSize=textSize
    Dim cachedGraphicLayer2 As ESRI.ArcGIS.DefenseSolutions.ICachedGraphicLayer2=CType(tacticalGraphicLayer, ESRI.ArcGIS.DefenseSolutions.ICachedGraphicLayer2) ' Explicit Cast
    cachedGraphicLayer2.Size=symbolSize
    success=True

  End If

  cachedGraphicLayer.Refresh()

  Return success

End Function

Additional Requirements
  • The code in this document requires the following References added to the Visual Studio project:
  • ESRI.ArcGIS.DefenseSolutions
  • ESRI.ArcGIS.System