GIS二次开发实验指导书(实验5)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验五PageLayout属性设置与元素绘制

1、新建项目,设置窗体界面如下:

2、在主窗体的Load事件中添加如下代码:

private void FormMain_Load(object sender, EventArgs e)

{

Microsoft.Win32.RegistryKey pRegKey =

Microsoft.Win32.Registry.LocalMachine.OpenSubKey("SOFTWARE\\ESRI\\CoreRuntime", true);

axSymbologyControl1.LoadStyleFile(pRegKey.GetValue("InstallDir") +

"\\Styles\\ESRI.ServerStyle");

axSymbologyControl1.GetStyleClass(esriSymbologyStyleClass.esriStyleClassBackgrounds).Update ();

axSymbologyControl1.GetStyleClass(esriSymbologyStyleClass.esriStyleClassBorders).Update();

axSymbologyControl1.GetStyleClass(esriSymbologyStyleClass.esriStyleClassShadows).Update(); }

3、在“设置边框”按钮的Click事件中添加如下代码:

private void ButtonBorder_Click(object sender, EventArgs e)

{

axSymbologyControl1.StyleClass = esriSymbologyStyleClass.esriStyleClassBorders; }

4、在“设置阴影”按钮的Click事件中添加如下代码:

private void ButtonShadows_Click(object sender, EventArgs e)

{

axSymbologyControl1.StyleClass = esriSymbologyStyleClass.esriStyleClassShadows; }

5、在“设置背景”按钮的Click事件中添加如下代码:

private void ButtonBackground_Click(object sender, EventArgs e)

{

axSymbologyControl1.StyleClass =

esriSymbologyStyleClass.esriStyleClassBackgrounds;

}

6、在axSymbologyControl1控件的OnItemSelected事件中添加如下代码:

private void axSymbologyControl1_OnItemSelected(object sender, ISymbologyControlEvents_OnItemSelectedEvent e)

{

IStyleGalleryItem pStyleGalleryItem = e.styleGalleryItem as IStyleGalleryItem;

IFrameProperties pFrameProperties =

axPageLayoutControl1.GraphicsContainer.FindFrame(axPageLayoutControl1.ActiveView.FocusMap) as IFrameProperties;

if (pStyleGalleryItem.Item is IBackground)

{

pFrameProperties.Background = pStyleGalleryItem.Item as IBackground;

}

else if (pStyleGalleryItem.Item is IBorder)

{

pFrameProperties.Border = pStyleGalleryItem.Item as IBorder;

}

else if (pStyleGalleryItem.Item is IShadow)

{

pFrameProperties.Shadow = pStyleGalleryItem.Item as IShadow;

}

axPageLayoutControl1.Refresh(esriViewDrawPhase.esriViewBackground, null, null); }

7、在“设置网格”按钮的Click事件中添加如下代码:

private void ButtonGrid_Click(object sender, EventArgs e)

{

IActiveView pActiveView = axPageLayoutControl1.PageLayout as IActiveView;

IMap pMap = pActiveView.FocusMap;

IMeasuredGrid pMeasuredGrid = new MeasuredGridClass();

IMapGrid pMapGrid = pMeasuredGrid as IMapGrid;

pMeasuredGrid.FixedOrigin = true;

pMeasuredGrid.Units = pMap.MapUnits;

pMeasuredGrid.XIntervalSize = 10;

pMeasuredGrid.YIntervalSize = 10;

pMeasuredGrid.XOrigin = -180;

pMeasuredGrid.YOrigin = -90;

IProjectedGrid pProjectedGrid = pMeasuredGrid as IProjectedGrid;

pProjectedGrid.SpatialReference = pMap.SpatialReference;

= "Measured Grid";

IGraphicsContainer pGraphicsContainer = pActiveView as IGraphicsContainer;

IMapFrame pMapFrame = pGraphicsContainer.FindFrame(pMap) as IMapFrame;

IMapGrids pMapGrids = pMapFrame as IMapGrids;

pMapGrids.AddMapGrid(pMapGrid);

pActiveView.PartialRefresh(esriViewDrawPhase.esriViewBackground, null, null); }

8、程序运行最终界面如下:

思考题:

1、IStyleGalleryItem接口有哪些属性,各属性有何作用?

2、叙述实现“设置网格”功能的编程思路。

相关文档
最新文档