protected virtual void HandleMouseWheel(object sender, MouseWheelEventArgs e)
{
var zoom = e.Delta > 0 ? .2 : -.2;
if (!(e.Delta > 0) && (ScaleTransform.ScaleX < .4 || ScaleTransform.ScaleY < .4))
return;
foreach (Border child in Children)
{
child.UpdateLayout();
var position = e.GetPosition(child);
child.RenderTransformOrigin = new Point(position.X/child.ActualWidth, position.Y/child.ActualHeight);
}
ScaleTransform.ScaleX += zoom;
ScaleTransform.ScaleY += zoom;
}