ThinkGeo.com    |     Documentation    |     Premium Support

Problem setting Height on LegendAdornmentLayer

Hello,


 I am having an issue with the LegendAdornmentLayer with the WPF edition.



Version of DLL that I use is => 6.0.185.0


When i change the LegendAdornmentLayer.Height, the height doesn't change.


 This is my code : 


Regards.



           var legendAdornmentLayer = new LegendAdornmentLayer();
            legendAdornmentLayer.Height = 500;
            legendAdornmentLayer.Width = 140;

            legendAdornmentLayer.Title = titleLegendItem;
            legendAdornmentLayer.LegendItems.Add(legendItem1);
            legendAdornmentLayer.LegendItems.Add(legendItem2);

            var legendPrinterLayer = new LegendPrinterLayer(legendAdornmentLayer);


Hi Shaahin, 
  
 I guess the issue has been fixed in the latest version for days, can you try downloaded the latest version 6.0.343.0 or later to have a try? Any question or problems please let me know. 
  
 Thanks, 
 Johnny

Hi Shaahin, 
  
 I guess the issue has been fixed in the latest version for days, can you try downloaded the latest version 6.0.343.0 or later to have a try? Any question or problems please let me know. 
  
 Thanks, 
 Johnny

Thanks for your response. 

I've tried version  6.0.343.0 but the issue still exist. 

Would you please check and let me know ? 



Thanks, 

Shaahin.



Hi Shaahin, 
  
 Sorry for the inconvenience, if you are using the legendAdornmentLayer with the printerlayer, the width and height will get streched by the legendprinterlayer.SetPosition() method, you can put the legendAdornmentLayer in an AdornmentOverlay and display it on the map, it works properly. 
  
 Regards, 
 Edgar

Hi Edgar, 
  
 Thank you so much for your answer. 
 Now I can change height and width using legendPrinterLayer.SetPosition() method. 
 What do you suggest to set Height based on count of legends ? We can’t set height hard code because user add layers to map dynamically and run-time. 
 So it should be something like this => 
 
double height = legends.Count * someNumber;
 
 
 Another related question : How can I position legendPrinterLayer based on its height ? 
 I want position legendPrinterLayer  in the right top corner regardless height .  
 Regards, 
 Shaahin.

Would you please move this topic to WPF topics ?  
 Sorry , my mistake.

Hi Shaahin, 
  
 The default height of each legend item is 25 pixels, so I think you can set the height by the count of legend items. (Don’t forget the title and footer). 
  
 For your second question, you can get the pagePrinterlayer’s boundingbox and calculate the center point with the legendprinterlayer’s width and height. 
  
 Regards, 
 Edgar