<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Centering a label beneath a marker in ArcGIS Runtime SDK for WPF (Retired) Questions</title>
    <link>https://community.esri.com/t5/arcgis-runtime-sdk-for-wpf-retired-questions/centering-a-label-beneath-a-marker/m-p/535060#M2738</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I wanted to create a marker symbol that &lt;/SPAN&gt;&lt;STRONG&gt;centers&lt;/STRONG&gt;&lt;SPAN&gt; a label beneath the point.&amp;nbsp; I eventually came up with the following, which works, but I'd like to know if there's a better approach that I'm not seeing, especially one that's pure XAML.&amp;nbsp; Thanks!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="plain" name="code"&gt;
&amp;lt;Window.Resources&amp;gt;
 &amp;lt;src:CanvasLeftMidpointOffsetter x:Key="LeftOffsetter" /&amp;gt;
 &amp;lt;esri:MarkerSymbol x:Key="CenterLabelSymbol"&amp;gt;
&amp;nbsp;&amp;nbsp; &amp;lt;esri:MarkerSymbol.ControlTemplate&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ControlTemplate&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Canvas&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Ellipse Canvas.Top="-6" Canvas.Left="-6" Width="12" Height="12" Fill="Black"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HorizontalAlignment="Center" VerticalAlignment="Center" /&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;TextBlock Canvas.Top="14" 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HorizontalAlignment="Center" VerticalAlignment="Top" TextAlignment="Center"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Text="{Binding Attributes[VALUE]}" FontFamily="Arial" FontSize="12"&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Canvas.Left&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Binding Converter="{StaticResource LeftOffsetter}"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RelativeSource="{x:Static RelativeSource.Self}" Path="ActualWidth" /&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Canvas.Left&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/TextBlock&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Canvas&amp;gt;
&amp;nbsp;&amp;nbsp; &amp;lt;/ControlTemplate&amp;gt;
 &amp;lt;/esri:MarkerSymbol.ControlTemplate&amp;gt;
 &amp;lt;/esri:MarkerSymbol&amp;gt;
&amp;lt;/Window.Resources&amp;gt;
&lt;/PRE&gt;&lt;DIV style="display:none;"&gt; &lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="plain" name="code"&gt;
public class CanvasLeftMidpointOffsetter : IValueConverter
{
&amp;nbsp;&amp;nbsp; public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Convert (double) ActualWidth to (double) Canvas.Left
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; double dActualWidth = (double)value;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return -dActualWidth / 2;
&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp; public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Meaningless
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 0;
&amp;nbsp;&amp;nbsp; }
}

&lt;/PRE&gt;&lt;DIV style="display:none;"&gt; &lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 13 Nov 2012 16:46:53 GMT</pubDate>
    <dc:creator>MarkCederholm</dc:creator>
    <dc:date>2012-11-13T16:46:53Z</dc:date>
    <item>
      <title>Centering a label beneath a marker</title>
      <link>https://community.esri.com/t5/arcgis-runtime-sdk-for-wpf-retired-questions/centering-a-label-beneath-a-marker/m-p/535060#M2738</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I wanted to create a marker symbol that &lt;/SPAN&gt;&lt;STRONG&gt;centers&lt;/STRONG&gt;&lt;SPAN&gt; a label beneath the point.&amp;nbsp; I eventually came up with the following, which works, but I'd like to know if there's a better approach that I'm not seeing, especially one that's pure XAML.&amp;nbsp; Thanks!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="plain" name="code"&gt;
&amp;lt;Window.Resources&amp;gt;
 &amp;lt;src:CanvasLeftMidpointOffsetter x:Key="LeftOffsetter" /&amp;gt;
 &amp;lt;esri:MarkerSymbol x:Key="CenterLabelSymbol"&amp;gt;
&amp;nbsp;&amp;nbsp; &amp;lt;esri:MarkerSymbol.ControlTemplate&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ControlTemplate&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Canvas&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Ellipse Canvas.Top="-6" Canvas.Left="-6" Width="12" Height="12" Fill="Black"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HorizontalAlignment="Center" VerticalAlignment="Center" /&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;TextBlock Canvas.Top="14" 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HorizontalAlignment="Center" VerticalAlignment="Top" TextAlignment="Center"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Text="{Binding Attributes[VALUE]}" FontFamily="Arial" FontSize="12"&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Canvas.Left&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Binding Converter="{StaticResource LeftOffsetter}"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RelativeSource="{x:Static RelativeSource.Self}" Path="ActualWidth" /&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Canvas.Left&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/TextBlock&amp;gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Canvas&amp;gt;
&amp;nbsp;&amp;nbsp; &amp;lt;/ControlTemplate&amp;gt;
 &amp;lt;/esri:MarkerSymbol.ControlTemplate&amp;gt;
 &amp;lt;/esri:MarkerSymbol&amp;gt;
&amp;lt;/Window.Resources&amp;gt;
&lt;/PRE&gt;&lt;DIV style="display:none;"&gt; &lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="plain" name="code"&gt;
public class CanvasLeftMidpointOffsetter : IValueConverter
{
&amp;nbsp;&amp;nbsp; public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Convert (double) ActualWidth to (double) Canvas.Left
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; double dActualWidth = (double)value;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return -dActualWidth / 2;
&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp; public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Meaningless
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 0;
&amp;nbsp;&amp;nbsp; }
}

&lt;/PRE&gt;&lt;DIV style="display:none;"&gt; &lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 13 Nov 2012 16:46:53 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-runtime-sdk-for-wpf-retired-questions/centering-a-label-beneath-a-marker/m-p/535060#M2738</guid>
      <dc:creator>MarkCederholm</dc:creator>
      <dc:date>2012-11-13T16:46:53Z</dc:date>
    </item>
  </channel>
</rss>

