How to keep relative position of WPF elements on background image

Posted by Masterfu on Stack Overflow See other posts from Stack Overflow or by Masterfu
Published on 2009-04-28T08:54:22Z Indexed on 2010/05/29 9:42 UTC
Read the original article Hit count: 607

Filed under:
|

Hi folks,

I am new to WPF, so the answer to the following question might be obvious, however it isn't to me. I need to display an image where users can set markers on (As an example: You might want to mark a person's face on a photograph with a rectangle), however the markers need to keep their relative position when scaling the image.

Currently I am doing this by using a Canvas and setting an ImageBrush as Background. This displays the image and I can add elements like a Label (as replacement for a rectangle) on top of the image. But when I set a label like this, it's position is absolute and so when the underlying picture is scaled (because the user drags the window larger) the Label stays at it's absolute position (say, 100,100) instead of moving to the new position that keeps it "in sync" with the underlying image.

To cut the matter short: When I set a marker on a person's eye, it shouldn't be on the person's ear after scaling the window.

Any suggestions on how to do that in WPF? Maybe Canvas is the wrong approach in the first place? I could keep a collection of markers in code and recalculate their position every time the window gets resized, but I hope there is a way to let WPF do that work for me :-)

I am interested in hearing your opinions on this. Thanks

© Stack Overflow or respective owner

Related posts about wpf

Related posts about layout