ThinkGeo.com    |     Documentation    |     Premium Support

How to wrap legend title when it is long?

I have a legendadornlayer:

LegendAdornmentLayer legendLayer = new LegendAdornmentLayer();

LegendItem title = new LegendItem();


can I wrap the title text if it is too long, bigger than the legend box?



I saw an example to wrap labels for features. would it work for legendlayer?



wiki.thinkgeo.com/wiki/Sourc…091020.zip



thanks,


Hi Guangming, 
  
 Yes, you’re right, if the title is too long, you should want to wrap the text yourself. 
  
 I think the algorithm in the wiki sample is helpful for you, you can implement your wrap function for title. 
  
 Regards, 
  
 Don

unfortunately,my customized textstyle never got called! 
  
 LegendItem is not associated with any feature: TextStyle is based on Features. 
  
 Any trick? 


Hi Guangming, 
  
 Please override DrawSampleCore and the text is saved in TextColumnName property. 
  
 So you can introduce the logic there and calculate whether the text need be wrapped. 
  
  protected override void DrawSampleCore(GeoCanvas canvas, DrawingRectangleF drawingExtent)
            {
                canvas.DrawText(TextColumnName, Font, TextSolidBrush, HaloPen, new ScreenPointF[] { new ScreenPointF(drawingExtent.CenterX, drawingExtent.CenterY) }, DrawingLevel, 0, 0, (float)RotationAngle);                
            }
 
  
 Regards, 
  
 Don

it is more than that. I created a new one from LegendAdornmentLayer. 
  
 Thanks,

Hi Guangming, 
  
 I am glad to hear that works for you. 
  
 Regards, 
  
 Don