public Control CreateMarkerPlaceControl(IMarkerPlacement pGE, BasicSymbolLayerBaseControl attControl) { IGraphicAttributes attributes = new MarkerPlacementInsidePolygonClass(); string className = attributes.ClassName; string str2 = (pGE as IGraphicAttributes).ClassName; switch ((pGE as IGraphicAttributes).ClassName) { case "Along line": return(new MarkerPlacementAlongLinePage(attControl)); case "At extremities": return(new MarkerPlacementAtExtremitiesPage(attControl)); case "Decorations": return(new MarkerPlacementDecorationPage(attControl)); case "Inside polygon": return(new MarkerPlacementInsidePolygonPage(attControl)); case "On line": return(new MarkerPlacementOnLinePage(attControl)); case "On point": return(new MarkerPlacementOnPointPage(attControl)); case "Polygon center": return(new MarkerPlacementPolygonCenterPage(attControl)); case "Randomly along": return(new MarkerPlacementRandomAlongLinePage(attControl)); case "Randomly inside polygon": return(new MarkerPlacementRandomInPolygonPage(attControl)); case "Variable size": return(new MarkerPlacementVariableAlongLinePage(attControl)); } return(null); }
private void BasicMarkerSymbolLayer_Load(object sender, EventArgs e) { IMarkerPlacement markerPlacement = (base.m_pBasicSymbol as IBasicMarkerSymbol).MarkerPlacement; Control c = base.CreateMarkerPlaceControl(markerPlacement, this); if (c != null) { (c as MarkerPlacementBaseControl).BasicMarkerSymbol = base.m_pBasicSymbol as IBasicMarkerSymbol; base.AddControl(c); } Control control2 = base.CreateControlByGeometricEffect(base.m_pBasicSymbol as IGeometricEffect, this); (control2 as GeometricEffectBaseControl).GeometricEffect = base.m_pBasicSymbol as IGeometricEffect; base.AddControl(control2); for (int i = (base.m_pBasicSymbol as IGeometricEffects).Count - 1; i >= 0; i--) { control2 = base.CreateControlByGeometricEffect( (base.m_pBasicSymbol as IGeometricEffects).get_Element(i), this); (control2 as GeometricEffectBaseControl).GeometricEffect = (base.m_pBasicSymbol as IGeometricEffects).get_Element(i); base.AddControl(control2); } }