AE+C#向IPageLayout中增加图例框

具体代码如下

public void AddMapSurround(IPageLayout pageLayout, IActiveView activeView)
{
    IMap map = activeView.FocusMap;
    IGraphicsContainer graphicsContainer = pageLayout as IGraphicsContainer;
    IFrameElement frameElement = graphicsContainer.FindFrame(map);
    IMapFrame mapFrame = (IMapFrame)frameElement;
    IMapSurroundFrame mapSurroundFrame = new MapSurroundFrameClass();
    UID elementUID = new UIDClass();

    //The value determines the type of MapSurroundFrame being added.
    elementUID.Value = "esriCarto.Legend";

    //The CreateSurroundFrame method takes the UID of the element and an optional style.
    mapSurroundFrame = mapFrame.CreateSurroundFrame(elementUID, null);
    mapSurroundFrame.MapSurround.Name = "Legend";

    //Cast the MapSurroundFrame as an element so it can be inserted into the page layout.
    IElement doc_Element = mapSurroundFrame as IElement;
    IElement mainMap_Element = mapFrame as IElement;
    IGeometry geometry = mainMap_Element.Geometry;
    IEnvelope mainMap_Envelope = geometry.Envelope;
    IEnvelope envelope = new EnvelopeClass();
    double xMin = mainMap_Envelope.XMax + 1.5;
    double yMin = mainMap_Envelope.YMin + 1.5;
    double xMax = mainMap_Envelope.XMax - 1.5;
    double yMax = mainMap_Envelope.YMax - 1.5;
    envelope.PutCoords(xMin, yMin, xMax, yMax);

    doc_Element.Geometry = envelope as IGeometry;
    doc_Element.Activate(activeView.ScreenDisplay);
    graphicsContainer.AddElement(doc_Element, 0);

    activeView.PartialRefresh(esriViewDrawPhase.esriViewGraphics, null, null);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值