2013-08-21 123 views
2

我有一個WPF圖像,我試圖在它上面畫一些東西(讓我們說一個笑臉,2個藍色圓圈和一個紅色橢圓圈)。 我在圖像上製作了一個小的Rectangle,並將其拉伸。通過圖像繪製縮放圖片

<Grid Name="mGrid"> 
    <Rectangle Height="0" HorizontalAlignment="Stretch" Stretch="Fill" Name="mImageFrame" VerticalAlignment="Stretch" Width="0" /> 
</Grid > 

我用DrawingBrush在矩形中繪製圓圈。
顯然這是錯誤的,因爲我有兩個問題:
1. DrawingBrush似乎有不同的規模。它會根據它繪製的最大物品進行縮放。
2.我只能使用一種筆刷顏色。

那麼,我怎樣才能以某種方式繪製圖像,使其保持相同的比例?
如何爲每種形狀使用不同的顏色?

回答

2

您可以在畫布上放置圖形,以覆蓋圖像,並將整個視圖放入視圖框中。這要求您通過將圖像的Stretch屬性設置爲None(並因此將圖像大小強制爲其Source位圖的大小)或明確設置爲WidthHeight來定義絕對座標。

<Viewbox> 
    <Grid> 
     <Image Source="C:\Users\Public\Pictures\Sample Pictures\Koala.jpg" 
       Stretch="None"/> 
     <Canvas> 
      <Ellipse Canvas.Left="420" Canvas.Top="480" 
        Fill="Red" Width="100" Height="100"/> 
      ... more shapes here ... 
     </Canvas> 
    </Grid> 
</Viewbox> 
+0

我需要整個東西可以由用戶調整大小,所以我不能使用絕對大小。 –

+0

好吧。 Viewbox本身設置整個容器的大小。 –

0

一種解決方案是將圖紙和Image放入ViewBox控件中。您可以從MSDN的Viewbox Class頁面瞭解有關Viewbox的更多信息。基本上,它提供與Image控件相同的伸展能力。

可能也想查看MSDN上的Shapes and Basic Drawing in WPF Overview頁面。

+0

是的,我看到那個頁面,很簡單的一個形狀 - 一個顏色,沒有重新調整大小的例子。 –