viliescu wrote:
Very nice!
One suggestion: you can use Viewbox element which automatically scales its content so you don't have to handle the scaling yourself.

So the XAML code will look something like that:
<Viewbox Stretch="Uniform">
    <Canvas x:Name="canvas">
...



Really! I learned a new thing. Thanks. I have updated it.