2014-02-17 139 views
0

我在<Grid>内的<Border>内有<Image>。我有一个baseMap.png加载到该图像(来源)。使用滚轮我可以使用矩阵旋转图像。将图标添加到图像

我现在想在图像上的任意x,y上添加一个图标(例如push_pin.png),实际上是通过合并baseMap.png和push_pin.png来创建一个新图像,稍后将偏移一些x & y相对于baseMap.png。

如何做到最好?

戴夫

回答

1

你可以使用一个Canvas定位的图标,而在ImageBrush设定为Canvas.Background这样显示baseMap.png图像:

<Grid> 
    <Border> 
     <Canvas> 
      <Canvas.Background> 
       <ImageBrush ImageSource="/YourAppName;component/Images/baseMap.png" /> 
      </Canvas.Background> 
      <Image Source="/YourAppName;component/Images/push_pin.png" 
       Canvas.Left="100" Canvas.Top="100" /> <!-- Positioning --> 
     </Canvas> 
    </Border> 
</Grid> 

您可以硬编码的位置图标,或者更好的是,数据绑定到他们。 Canvas.LeftCanvas.Top属性也可以用在动画中,并且ImageBrush类具有各种属性以影响它如何显示图像。

+0

我需要能够平移/缩放/旋转baseMap ...以及它的图标... ImageBrush可以平移/缩放/旋转吗?如果我需要添加多个图标和线条,该怎么办? – davecove

+0

'ImageBrush'就像你的原始元素的副本。如果你旋转你的原始图像,'ImageBrush'也会旋转。如果将包含多个形状的“Visual”传递给“ImageBrush”,则ImageBrush将显示多个形状。阅读链接页面以获取更多信息。 – Sheridan

+0

我仍然在这里失踪。假设我有一张美国地图作为您的建议背景。然后我使用画布在纽约市上放置图钉图形。这似乎很好。现在我使用矩阵将背景逆时针旋转45度。图钉如何跟随纽约? – davecove