/// 拷贝到PageLayOut视图已选中数据框中
public void CopyMapToPageLayOutDataFrameforPrint(IMap pMapControlMap)
{
//get Selected DataFrame
IActiveView pAV = this.axPageLayoutControl1.ActiveView;
IElement pElement = null;
IMapFrame pMapFrame = null;
IGraphicsContainerSelect pGraphicsContainerSelect = null;
pGraphicsContainerSelect = pAV.GraphicsContainer as IGraphicsContainerSelect;
#region 如果PageLayOut的Dataframe选中
if (pGraphicsContainerSelect.ElementSelectionCount > 0)
{
for (int i = 0; i < pGraphicsContainerSelect.ElementSelectionCount; i++)
{
pElement = pGraphicsContainerSelect.SelectedElement(i);
if (pElement is IMapFrame)
{
pMapFrame = pElement as IMapFrame;
break;
}
}
if (pMapFrame != null)
{
//设置边框白色
SimpleLineSymbolClass pSimLineSymb = new SimpleLineSymbolClass();
IRgbColor rgbcolor = new RgbColorClass();
rgbcolor.Red = 255;
pSimLineSymb.Color = rgbcolor;
ISymbolBorder sb = new SymbolBorderClass();
sb.LineSymbol = pSimLineSymb;
(pMapFrame as IFrameElement).Border = sb;
//拷贝到打印视图中
IObjectCopy pObjCopy = new ObjectCopyClass();
IMap pMapFrom = pMapControlMap;
IMap pMapTo = axPageLayoutControl1.ActiveView.FocusMap;
object objectTo = pMapTo;
pObjCopy.Overwrite(pMapFrom as object, ref objectTo);
IMap pPageLayoutMap = axPageLayoutControl1.ActiveView.FocusMap;
this.fullPageLayerOut(pPageLayoutMap, (pMapControlMap as IActiveView).Extent);
}
else
{
this.CopyMapToPageLayOutforPrint(pMapControlMap);
}
}
#endregion
else
{
this.CopyMapToPageLayOutforPrint(pMapControlMap);
}
}
/// 删除原有边框和数据拷贝到Pagelayout视图中
public void CopyMapToPageLayOutforPrint(IMap pMapControlMap)
{
try
{
//删除原有边框和数据
this.axPageLayoutControl1.GraphicsContainer.DeleteAllElements();
//拷贝到打印视图中
IObjectCopy pObjCopy = new ObjectCopyClass();
IMap pMapFrom = pMapControlMap;
IMap pMapTo = axPageLayoutControl1.ActiveView.FocusMap;
object objectTo = pMapTo;
pObjCopy.Overwrite(pMapFrom as object, ref objectTo);
IMap pPageLayoutMap = axPageLayoutControl1.ActiveView.FocusMap;
this.fullPageLayerOut(pPageLayoutMap, (pMapControlMap as IActiveView).Extent);
//设置边框白色
SimpleLineSymbolClass pSimLineSymbolClass = new SimpleLineSymbolClass();
IRgbColor rgbcolor = new RgbColorClass();
rgbcolor.Red = 255;
pSimLineSymbolClass.Color = rgbcolor;
ISymbolBorder pSymBorder = new SymbolBorderClass();
pSymBorder.LineSymbol = pSimLineSymbolClass;
IActiveView pAV = this.axPageLayoutControl1.ActiveView;
IGraphicsContainer pGraphicsContainer = pAV.GraphicsContainer;
pGraphicsContainer.Reset();
IElement pElement = pGraphicsContainer.Next();
while (pElement != null)
{
if (pElement is IMapFrame)
{
(pElement as IFrameElement).Border = pSymBorder;
break;
}
pElement = pGraphicsContainer.Next();
}
}
catch (Exception ee)
{
MessageBox.Show(ee.Message, "提示");
}
}
/// 全显整个图像
private void fullPageLayerOut(IMap PageLayOutOfMap, IEnvelope MapControlMapOfExtend)
{
try
{
IActiveView pAV = (IActiveView)PageLayOutOfMap;
IDisplayTransformation displayTransformation = pAV.ScreenDisplay.DisplayTransformation;
displayTransformation.VisibleBounds = MapControlMapOfExtend;
}
catch (Exception d)
{
System.Diagnostics.Debug.WriteLine(d.Message);
}
}