public void Fill(Rect panelSize, Rect elementSize) { if (_element != null) { double pw = panelSize.Width; double ph = panelSize.Height; double ew = elementSize.Width; double eh = elementSize.Height; double zx = pw / ew; double zy = ph / eh; _matrix = MatrixHelper.ScaleAt(zx, zy, ew / 2.0, eh / 2.0); Invalidate(); } }
public void Extent(Rect panelSize, Rect elementSize) { if (_element != null) { double pw = panelSize.Width; double ph = panelSize.Height; double ew = elementSize.Width; double eh = elementSize.Height; double zx = pw / ew; double zy = ph / eh; double zoom = Min(zx, zy); double cx = ew / 2.0; double cy = eh / 2.0; _matrix = MatrixHelper.ScaleAt(zoom, zoom, cx, cy); Invalidate(); } }
public Point FixInvalidPointPosition(Point point) { return(MatrixHelper.TransformPoint(_matrix.Invert(), point)); }
public void ZoomTo(double zoom, Point point) { _matrix = MatrixHelper.ScaleAtPrepend(_matrix, zoom, zoom, point.X, point.Y); Invalidate(); }