arcengine pagelayout控件设置主要代码

private void addtext_Click(object sender, EventArgs e)
{
    ESRI.ArcGIS.Carto.IActiveView activeView;
    ESRI.ArcGIS.Carto.IGraphicsContainer graphicsContainer;
    ESRI.ArcGIS.Carto.ITextElement textElement;
    ESRI.ArcGIS.Display.ITextSymbol textSymbol;
    ESRI.ArcGIS.Display.IRgbColor rgbColor;
    ESRI.ArcGIS.Carto.IElement element;
    ESRI.ArcGIS.Geometry.IEnvelope envelope;

    activeView = axPageLayoutControl1.PageLayout as ESRI.ArcGIS.Carto.IActiveView;
    envelope = new ESRI.ArcGIS.Geometry.EnvelopeClass();
    envelope.PutCoords(0, 0, 5, 5);
    textElement = new ESRI.ArcGIS.Carto.TextElementClass();
    element = textElement as ESRI.ArcGIS.Carto.IElement;
    element.Geometry = envelope;

    textElement.Text = “我的地图”;
    textSymbol = new ESRI.ArcGIS.Display.TextSymbolClass();
    rgbColor = new ESRI.ArcGIS.Display.RgbColorClass();

    rgbColor.Red = 255;
    rgbColor.Green = 255;
    rgbColor.Blue = 0;
    textSymbol.Color = rgbColor as ESRI.ArcGIS.Display.IColor;
    textSymbol.Size = 20;
    textElement.Symbol = textSymbol;

    graphicsContainer = activeView as ESRI.ArcGIS.Carto.IGraphicsContainer;
    graphicsContainer.AddElement(element, 0);
    axPageLayoutControl1.Refresh();

}

private void addSymbol_Click(object sender, EventArgs e)
{
    ESRI.ArcGIS.esriSystem.UID uid;
    ESRI.ArcGIS.Geometry.IEnvelope envelope;
    ESRI.ArcGIS.Carto.IGraphicsContainer graphicsContainer;
    ESRI.ArcGIS.Carto.IMapFrame mapFrame;
    ESRI.ArcGIS.Carto.IMapSurroundFrame mapSurroundFrame;
    ESRI.ArcGIS.Carto.IElement element;
    ESRI.ArcGIS.esriSystem.ITrackCancel trackCancel;

    uid = new ESRI.ArcGIS.esriSystem.UIDClass();
    uid.Value = “esriCarto.legend”;
    envelope = new ESRI.ArcGIS.Geometry.EnvelopeClass();
    envelope.PutCoords(1,1,2,2);

    graphicsContainer = axPageLayoutControl1.PageLayout as ESRI.ArcGIS.Carto.IGraphicsContainer;
    mapFrame =graphicsContainer.FindFrame(axPageLayoutControl1.ActiveView.FocusMap) as ESRI.ArcGIS.Carto.IMapFrame;
    mapSurroundFrame = mapFrame.CreateSurroundFrame(uid,null);
    mapSurroundFrame.MapSurround.Name = “图例”;

    element = mapSurroundFrame as ESRI.ArcGIS.Carto.IElement;
    element.Geometry = envelope;
    element.Activate(axPageLayoutControl1.ActiveView.ScreenDisplay);
    trackCancel = new ESRI.ArcGIS.Display.CancelTrackerClass();
    element.Draw(axPageLayoutControl1.ActiveView.ScreenDisplay,trackCancel);

    graphicsContainer.AddElement(element,0);
    axPageLayoutControl1.Refresh();
}

private void addtextscaler_Click(object sender, EventArgs e)
{
    UID uid;
    IEnvelope envelope;

    IGraphicsContainer graphicsContainer;
    IMapFrame mapFrame;
    IMapSurroundFrame mapSurroundFrame;
    IElement element;
    ITrackCancel trackCancel;

    uid = new UIDClass();
    uid.Value = “esriCarto.ScaleText”;
    envelope = new EnvelopeClass();
    envelope.PutCoords(1, 1, 2, 2);

    graphicsContainer = axPageLayoutControl1.PageLayout as IGraphicsContainer;
    mapFrame = graphicsContainer.FindFrame(axPageLayoutControl1.ActiveView.FocusMap) as IMapFrame;

    mapSurroundFrame = mapFrame.CreateSurroundFrame(uid, null);
    element = mapSurroundFrame as IElement;
    element.Geometry = envelope;
    element.Activate(axPageLayoutControl1.ActiveView.ScreenDisplay);

    trackCancel = new TrackCancelClass();
    element.Draw(axPageLayoutControl1.ActiveView.ScreenDisplay, trackCancel);

    graphicsContainer.AddElement(element, 0);
    axPageLayoutControl1.Refresh();
}

private void addimgscaler_Click(object sender, EventArgs e)
{
    UID uid;
    IEnvelope envelope;

    IGraphicsContainer graphicsContainer;
    IMapFrame mapFrame;
    IMapSurroundFrame mapSurroundFrame;
    IElement element;
    ITrackCancel trackCancel;

    uid = new UIDClass();
    uid.Value = “esriCarto.ScaleLine”;
    envelope = new EnvelopeClass();
    envelope.PutCoords(1, 1, 2, 2);

    graphicsContainer = axPageLayoutControl1.PageLayout as IGraphicsContainer;
    mapFrame = graphicsContainer.FindFrame(axPageLayoutControl1.ActiveView.FocusMap) as IMapFrame;

    mapSurroundFrame = mapFrame.CreateSurroundFrame(uid, null);
    element = mapSurroundFrame as IElement;
    element.Geometry = envelope;
    element.Activate(axPageLayoutControl1.ActiveView.ScreenDisplay);

    trackCancel = new TrackCancelClass();
    element.Draw(axPageLayoutControl1.ActiveView.ScreenDisplay, trackCancel);

    graphicsContainer.AddElement(element, 0);
    axPageLayoutControl1.Refresh();
}

public void CreateGrid(ESRI.ArcGIS.Carto.IActiveView activeView, IPageLayout pageLayout)
   {
       //Create the grid.
       IMapGrid mapGrid = new GraticuleClass();
       mapGrid.Name = “Map Grid”;

       //Create a color.
       IColor color = new RgbColorClass();
       color.RGB = 0XBBBBBB; // -> Gray.

       //Set the line symbol used to draw the grid.
       ICartographicLineSymbol cartographicLineSymbol = new CartographicLineSymbolClass();
       cartographicLineSymbol.Cap = esriLineCapStyle.esriLCSButt;
       cartographicLineSymbol.Width = 2;
       cartographicLineSymbol.Color = color;
       mapGrid.LineSymbol = cartographicLineSymbol as ILineSymbol;
       mapGrid.Border = null; // Clear the default frame border.

       //Set the Tick properties.
       mapGrid.TickLength = 15;
       cartographicLineSymbol = new CartographicLineSymbolClass();
       cartographicLineSymbol.Cap = esriLineCapStyle.esriLCSButt;
       cartographicLineSymbol.Width = 1;
       cartographicLineSymbol.Color = color;
       mapGrid.TickLineSymbol = cartographicLineSymbol as ILineSymbol;
       mapGrid.TickMarkSymbol = null;

       //Set the SubTick properties.
       mapGrid.SubTickCount = 5;
       mapGrid.SubTickLength = 10;
       cartographicLineSymbol = new CartographicLineSymbolClass();
       cartographicLineSymbol.Cap = esriLineCapStyle.esriLCSButt;
       cartographicLineSymbol.Width = 0.2;
       cartographicLineSymbol.Color = color;
       mapGrid.SubTickLineSymbol = cartographicLineSymbol as ILineSymbol;

       // Set the Grid label properties.
       IGridLabel gridLabel = mapGrid.LabelFormat;
       gridLabel.LabelOffset = 15;

       //Set the Tick, SubTick, and Label Visibility along the four sides of the grid.
       mapGrid.SetTickVisibility(true, true, true, true);
       mapGrid.SetSubTickVisibility(true, true, true, true);
       mapGrid.SetLabelVisibility(true, true, true, true);

       //Make the map grid visible so it gets drawn when Active View is updated.
       mapGrid.Visible = true;

       //Set the IMeasuredGrid properties.
       IMeasuredGrid measuredGrid = mapGrid as IMeasuredGrid;
       measuredGrid.FixedOrigin = true;
       measuredGrid.XIntervalSize = 10; //Meridian interval.
       measuredGrid.XOrigin = 5; //Shift grid 5°.
       measuredGrid.YIntervalSize = 10; //Parallel interval.
       measuredGrid.YOrigin = 5; //Shift grid 5°.

       // Add the grid to the MapFrame.
       IMap map = activeView.FocusMap;
       IGraphicsContainer graphicsContainer = pageLayout as IGraphicsContainer;
       IFrameElement frameElement = graphicsContainer.FindFrame(map);
       IMapFrame mapFrame = frameElement as IMapFrame;
       IMapGrids mapGrids = null;
       mapGrids = mapFrame as IMapGrids;
       mapGrids.AddMapGrid(mapGrid);

       //Refresh the view.
       activeView.PartialRefresh(esriViewDrawPhase.esriViewBackground, null, null);
   }

转载自:https://blog.csdn.net/qinyilang/article/details/6331143

You may also like...