/// <summary> /// 给予一个地图, 置换PageLayoutControl和MapControl的focus map /// </summary> /// <param name="newMap"></param> public void ReplaceMap(IMap newMap) { if (newMap == null) { throw new Exception("ControlsSynchronizer::ReplaceMap:\r\nNew map for replacement is not initialized!"); } if (m_pageLayoutControl == null || m_mapControl == null) { throw new Exception("ControlsSynchronizer::ReplaceMap:\r\nEither MapControl or PageLayoutControl are not initialized!"); } //create a new instance of IMaps collection which is needed by the PageLayout //创建一个PageLayout需要用到的,新的IMaps collection的实例 IMaps maps = new Maps(); //add the new map to the Maps collection //把新的地图加到Maps collection里头去 maps.Add(newMap); bool bIsMapActive = m_IsMapCtrlactive; //call replace map on the PageLayout in order to replace the focus map //we must call ActivatePageLayout, since it is the control we call 'ReplaceMaps' //调用PageLayout的replace map来置换focus map //我们必须调用ActivatePageLayout,因为它是那个我们可以调用"ReplaceMaps"的Control this.ActivatePageLayout(); m_pageLayoutControl.PageLayout.ReplaceMaps(maps); //assign the new map to the MapControl //把新的地图赋给MapControl m_mapControl.Map = newMap; //reset the active tools //重设active tools m_pageLayoutActiveTool = null; m_mapActiveTool = null; //make sure that the last active control is activated //确认之前活动的control被激活 if (bIsMapActive) { this.ActivateMap(); m_mapControl.ActiveView.Refresh(); } else { this.ActivatePageLayout(); m_pageLayoutControl.ActiveView.Refresh(); } }
/// <summary> /// bind the MapControl and PageLayoutControl together by assigning a new joint focus map /// 指定共同的Map来把MapControl和PageLayoutControl绑在一起 /// </summary> /// <param name="activateMapFirst">true if the MapControl supposed to be activated first,如果MapControl被首先激活,则为true</param> public void BindControls(bool activateMapFirst) { if (m_pageLayoutControl == null || m_mapControl == null) { throw new Exception("ControlsSynchronizer::BindControls:\r\nEither MapControl or PageLayoutControl are not initialized!"); } //create a new instance of IMap //创造IMap的一个实例 IMap newMap = new MapClass(); newMap.Name = "Map"; //create a new instance of IMaps collection which is needed by the PageLayout //创造一个新的IMaps collection的实例,这是PageLayout所需要的 IMaps maps = new Maps(); //add the new Map instance to the Maps collection //把新的Map实例赋给Maps collection maps.Add(newMap); //call replace map on the PageLayout in order to replace the focus map //调用PageLayout的replace map来置换focus map m_pageLayoutControl.PageLayout.ReplaceMaps(maps); //assign the new map to the MapControl //把新的map赋给MapControl m_mapControl.Map = newMap; //reset the active tools //重设active tools m_pageLayoutActiveTool = null; m_mapActiveTool = null; //make sure that the last active control is activated //确定最后活动的control被激活 if (activateMapFirst) { this.ActivateMap(); } else { this.ActivatePageLayout(); } }
/// <summary> /// 给予一个地图, 置换PageLayoutControl和MapControl的focus map /// </summary> /// <param name="newMap"></param> public void ReplaceMap(IMap newMap) { if (newMap == null) throw new Exception("ControlsSynchronizer::ReplaceMap:\r\nNew map for replacement is not initialized!"); if (m_pageLayoutControl == null || m_mapControl == null) throw new Exception("ControlsSynchronizer::ReplaceMap:\r\nEither MapControl or PageLayoutControl are not initialized!"); //create a new instance of IMaps collection which is needed by the PageLayout //创建一个PageLayout需要用到的,新的IMaps collection的实例 IMaps maps = new Maps(); //add the new map to the Maps collection //把新的地图加到Maps collection里头去 maps.Add(newMap); bool bIsMapActive = m_IsMapCtrlactive; //call replace map on the PageLayout in order to replace the focus map //we must call ActivatePageLayout, since it is the control we call 'ReplaceMaps' //调用PageLayout的replace map来置换focus map //我们必须调用ActivatePageLayout,因为它是那个我们可以调用"ReplaceMaps"的Control this.ActivatePageLayout(); m_pageLayoutControl.PageLayout.ReplaceMaps(maps); //assign the new map to the MapControl //把新的地图赋给MapControl m_mapControl.Map = newMap; //reset the active tools //重设active tools m_pageLayoutActiveTool = null; m_mapActiveTool = null; //make sure that the last active control is activated //确认之前活动的control被激活 if (bIsMapActive) { this.ActivateMap(); m_mapControl.ActiveView.Refresh(); } else { this.ActivatePageLayout(); m_pageLayoutControl.ActiveView.Refresh(); } }
/// <summary> /// bind the MapControl and PageLayoutControl together by assigning a new joint focus map /// 指定共同的Map来把MapControl和PageLayoutControl绑在一起 /// </summary> /// <param name="activateMapFirst">true if the MapControl supposed to be activated first,如果MapControl被首先激活,则为true</param> public void BindControls(bool activateMapFirst) { if (m_pageLayoutControl == null || m_mapControl == null) throw new Exception("ControlsSynchronizer::BindControls:\r\nEither MapControl or PageLayoutControl are not initialized!"); //create a new instance of IMap //创造IMap的一个实例 IMap newMap = new MapClass(); newMap.Name = "Map"; //create a new instance of IMaps collection which is needed by the PageLayout //创造一个新的IMaps collection的实例,这是PageLayout所需要的 IMaps maps = new Maps(); //add the new Map instance to the Maps collection //把新的Map实例赋给Maps collection maps.Add(newMap); //call replace map on the PageLayout in order to replace the focus map //调用PageLayout的replace map来置换focus map m_pageLayoutControl.PageLayout.ReplaceMaps(maps); //assign the new map to the MapControl //把新的map赋给MapControl m_mapControl.Map = newMap; //reset the active tools //重设active tools m_pageLayoutActiveTool = null; m_mapActiveTool = null; //make sure that the last active control is activated //确定最后活动的control被激活 if (activateMapFirst) this.ActivateMap(); else this.ActivatePageLayout(); }