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

更新时间:2024-05-16 21:13:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

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

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

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

private void FormMain_Load(object sender, EventArgs e) {

Microsoft.Win32.RegistryKey pRegKey =

Microsoft.Win32.Registry.LocalMachine.OpenSubKey(\, true); axSymbologyControl1.LoadStyleFile(pRegKey.GetValue(\) + \);

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; pMapGrid.Name = \;

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、叙述实现“设置网格”功能的编程思路。

本文来源:https://www.bwwdw.com/article/azl7.html

Top