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); }