private void Scroll(Point point)
{
if (target == null)
return;
var zoom = Scale*100/target.Zoom;
if (zoom <= float.Epsilon)
return;
var p0 = target.PlaceToPoint(startPlace);
p0 = new Point(0, p0.Y + (int) (point.Y/zoom));
var pp = target.PointToPlace(p0);
target.DoRangeVisible(new Range(target, pp, pp), true);
BeginInvoke((MethodInvoker) OnScroll);
}