• arcengine pagelayout控件设置主要代码


    文章来自:http://blog.csdn.net/qinyilang/article/details/6331143

    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); 
       } 
  • 相关阅读:
    opensuse字符和图形界面
    Eclipse编辑器小手段
    切换运行时用户以及用户组
    PHP安装和配置
    Linux程序资源限制简述
    test2234343
    找回Svn和Git不见的文件图标
    SourceInsight使用技巧
    Javascript数组使用方法
    MySQL安装和配置
  • 原文地址:https://www.cnblogs.com/ganb/p/pagelayout.html
Copyright © 2020-2023  润新知