这看起来很简单,但它对我不起作用。我想显示来自我的数据库的图像,并使用相同的坐标系覆盖来自同一数据库的多边形。
<Image Name="imgColl" Stretch="Fill" MaxWidth="190" MinHeight="70">
<Image.Source>
<DrawingImage>
<DrawingImage.Drawing>
<DrawingGroup>
<ImageDrawing ImageSource="{Binding ImageData}" Rect="0,0,590,590"/>
<GeometryDrawing Geometry="{Binding Coordinates, StringFormat=M\{0\}}">
<GeometryDrawing.Pen>
<Pen Thickness="4" LineJoin="Bevel" Brush="OrangeRed"/>
</GeometryDrawing.Pen>
</GeometryDrawing>
</DrawingGroup>
</DrawingImage.Drawing>
</DrawingImage>
</Image.Source>
</Image>
我发现我必须在 ImageDrawing 对象上指定 Rect。这很不幸,因为我正在加载的图像大小不同。但如果我不指定 Rect,则在运行应用程序时不会出现图像。如果我使图像足够大(如示例中所示),图像确实会出现,并且它会调整大小以适合我的控件,但多边形坐标系似乎不匹配。
此外,我使用 StringFormat 将 M 放在几何规范的前面,这样它就变成了这样:“M50,50,12,50,30,30,30,100,100,100”。如果我明确指定,多边形就会出现,但如果我用相同的字符串绑定它,多边形就不会出现。
不确定这两个问题是否相互关联——当这两个问题中的任何一个被修复时,我将不得不重新评估。感谢您提供的任何指导!