This is quite doable, but, in my view, unfortunately, even the initial directions and ideas would take too much work.
So, roughly speaking, for pixel graphics, you can use
and, for vector —
. You can combine different approaches and do many different things. Please see:
WPF documentation is pretty good; you can find all you need by yourself, just spend some time. Your time :-).