2

我有一个 WPF 图像,我正在尝试在其上绘制一些东西(让我们说一个笑脸,两个蓝色圆圈代表眼睛,一个红色椭圆代表嘴巴)。我Rectangle在图像上做了一个小,并使其拉伸。

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

我用 aDrawingBrush在矩形中绘制圆圈。
显然这是错误的,因为我有两个问题:
1. DrawingBrush 似乎有不同的比例。它将根据它正在绘制的最大项目进行缩放。
2.我只能使用一种画笔颜色。

那么,我怎样才能以某种方式绘制图像以使其保持相同的比例?
以及如何为每个形状使用不同的颜色?

4

2 回答 2

2

您可以将 Shapes 放在覆盖 Image 的 Canvas 上,并将整个东西放在 Viewbox 中。这要求您通过将 Image 的Stretch属性设置为None(并因此将 Image 大小强制为其Source 位图的大小)或显式设置 isWidth或来定义绝对坐标Height

<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>
于 2013-08-21T13:44:54.510 回答
0

一种解决方案是将绘图和Image放入ViewBox控件中。您可以从MSDN 上ViewboxViewbox Class页面了解更多信息。基本上,它提供与控件相同的拉伸功能Image

可能还想查看MSDN上 WPF 概述页面中的形状和基本绘图。

于 2013-08-21T13:40:35.063 回答