2011-05-12 66 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

相關問題