Это кажется простым, но это не работает для меня. Я хотел бы отобразить изображение из моей БД и наложить многоугольник из той же БД, используя ту же систему координат.
<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>
Я считаю, что мне нужно указать Rect для объекта ImageDrawing. Это прискорбно, потому что загружаемые изображения имеют разные размеры. Но если я не укажу Rect, изображение не появится при запуске приложения. Если я сделаю изображение достаточно большим (как в примере), оно появится, и его размер будет изменен в соответствии с моим контролем, но система координат многоугольника, похоже, не будет совпадать.
Кроме того, я использовал StringFormat, чтобы поставить M перед спецификацией Geometry, чтобы получилось так: «M50,50,12,50,30,30,30,100,100,100». Если я укажу это явно, появится многоугольник, но если я свяжу его с той же строкой, многоугольник не появится.
Не уверен, если эти две проблемы связаны друг с другом - мне придется пересмотреть, когда одна из двух будет исправлена. Спасибо за любые рекомендации, которые вы можете предложить!