ginomellino

GRRR Legend patch and label font size changing!

Discussion created by ginomellino on Jul 10, 2012
Hi,

I have a legend which I am attempting to use in an automated mapping application however I am getting strange results. I am attempting to set the default patch size but it (seemingly randomly) changes the patch and font size (not sure if its important but the mapsurroundframe is resized too although I think this is supposed to resize automatically with changes in the legend contents) even though the same code is ran each time.

For example, see the 2 attached pictures, one is *close* to the patch size I have asked for and the other is way off, and this is all from running the same code (below) over and over. Sometimes when I run it it will not appear to do anything then randomely it resizes everything.

Can anyone please tell me how I can fix this?

Thanks heaps in advance, this is driving me crazy!!!

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        'Get legend
        Dim pMapSurroundFrame As IMapSurroundFrame = GetMapElement("emtLegend")
        Dim pSurround As IMapSurround = pMapSurroundFrame.MapSurround
        Dim pLegend As ILegend = pSurround

        With pLegend
            .Format.DefaultPatchWidth = 19.845
            .Format.DefaultPatchHeight = 8.505
            .Format.LayerNameGap = 1
            .Format.VerticalItemGap = 1
            .Format.ShowTitle = False
        End With

        RefreshLegend(GetMapElement("emtLegend"))
    End Sub



Sub RefreshLegend(ByRef pElement As IElement)

        ' Refresh the legend.
        Dim pMSF As IMapSurroundFrame = pElement
        Dim pMapSurround As IMapSurround = pMSF.MapSurround
        Dim pEnv = New Envelope
        Dim pLegend As ILegend = pMapSurround

        pMapSurround.Refresh()
        pLegend.QueryBounds(g_pMxDoc.ActiveView.ScreenDisplay, pElement.Geometry.Envelope, pEnv)
        pElement.Geometry = pEnv

    End Sub

Outcomes