ThinkGeo.com    |     Documentation    |     Premium Support

Custom Text Style

Hello everyone,


I have an issue with the default TextStyle :



I would like to be able to place the label on the upper center. Do I have to create a custom textStyle and override the Draw method or it has already been developed ?


Thanks for your answer.



Pierre-Antoine, 
  
 Thanks for your post.  
  
 I think following HowDoI samples should help, please take a look if you are interested. 
 How Do I\Labeling  Change The Label Position 
 How Do I\Labeling  Change The Label Placement For Points 
  
 Any more questions please feel free to let me know. 
  
 Thanks. 
  
 Yale 
  

Hello,



I already take a look and try these examples, but the text is placed relative to the centroid of the polygon.



I want to place this text at the top (or elsewhere) of the polygon, not just move the text relative to the point.



Thank you.

 Hi Pierre-Antoine,


 
In your scenario, you should create a custom TextStyle and override the GetLabelingCandidateCore method. 
 
Sample code is below:

protected override Collection<LabelingCandidate> GetLabelingCandidateCore(Feature feature, GeoCanvas canvas)
{
Collection<LabelingCandidate> candidatesCollection = new Collection<LabelingCandidate>();
// Use your own logic to generate LabelingCandidate and change the CenterPoint property of LabelingCandidate
return candidatesCollection;
}

By default, we use Feature's Centroid as LabelingCandidate's CenterPoint. You need to customize this logic according to your scenario.
 
Thanks,
 
Ivan