The corresponding WPF control is called ViewBox. There's a little tutorial of it (in the context of Silverlight) at
http://www.youtube.com/watch?v=_ayqMJTn5N8 Though the tutorial is fairly thorough, it doesn't actually demonstrate any of the things for which my naive ScalePane implementation fails. So I suppose I should try to put together a little WPF demo to make sure I remember that it really does handle all those things :).
