для части Drag & Drop, в Silverlight пока нет встроенной функциональности (по крайней мере, для UIElements).Но есть много реализаций, которые предоставляют эту функциональность, например DragDropManager в Codeplex: http://silverlightdragdrop.codeplex.com/
Эти «обходные пути» обычно используют события мыши и CaptureMouse / ReleaseMouseCapture для реализации поведения перетаскивания в UIElements.
После того, как в вашем приложении будет перетаскивание, все остальное не должно быть слишком сложным.Я поместил бы изображение в Canvas, а затем переместил маркеры вокруг этого Canvas, используя функциональность, предоставляемую, например, реализацией Codeplex Drag & Drop.По сути, все, что вам нужно сделать, это установить Canvas.Top/Canvas.Left для маркера, основанного на том, где находится мышь.
Cheers, Alex