Not a complete answer, just the idea related only to the first of your problems: to show scalable images, you can use
Viewbox
:
http://msdn.microsoft.com/en-us/library/system.windows.controls.viewbox%28v=vs.110%29.aspx[
^].
Besides, you should make sure that the size of the view box is defined externally, but the size of containing element. Also, I would strongly advise to use vector graphics in nearly all cases, instead of pixel graphics. You can create, say, SVG graphics and convert it to XAML. Vector graphics scales smoothly, without pixellation. The alternative is your own rendering of visuals.
—SA