2011-05-12 38 views

回答

3

使用中的RenderTransform一个TranslateTransform你内容的宽度和高度的一半,以抵消。

例如,在汽车查找器(当它最终经过认证),我使用十字图标来表示该用户的当前位置,这是一个38x38的路径,因此偏移量是-19/-19:

<ControlTemplate x:Key="LocationPushpin" TargetType="maps:Pushpin"> 
    <Path Data="M50 0C22.43 0 0 22.43 0 50c0 27.569 22.43 50 50 50s50-22.431 50-50C100 22.43 77.57 0 50 0z M54.032 91.737V78.226h-8.064 v13.512C26.057 89.829 10.171 73.943 8.263 54.032h13.512v-8.064H8.263c1.909-19.911 17.794-35.796 37.705-37.705v13.511h8.064 V8.263c19.911 1.908 35.797 17.793 37.705 37.705H78.226v8.064h13.512C89.829 73.943 73.943 89.829 54.032 91.737z" 
      Fill="#000000" 
      Height="38" 
      Stretch="Uniform" 
      Width="38"> 
     <Path.RenderTransform> 
      <TranslateTransform X="-19" Y="19" /> 
     </Path.RenderTransform> 
    </Path> 
</ControlTemplate>
6

Pushpin有一个名为PositionOrigin的属性,它指定实际位置点相对于Pushpin图形的位置。例如,设置PositionOrigin="0.5, 0.5"会导致整个图钉元素居中放置在实际位置上。

我不确定这是否对您有用,因为您的问题的措辞意味着您要保留现有的图钉图形,但需要翻译放置在内容中的用户控件。

+1

据我所知,您可以使用XAML标记完全重新绑定推针,其方式与您使用其他任何控件时的方式大致相同,并且PositionOrigin存在并按照您描述的原则工作,除了使其更容易控制根据你的建议指针热点。所以,据我所知,任何其他方法都是沮丧。 +1 – 2011-05-15 11:46:09

相关问题