Avalonia Matrix helper methods.
Exemplo n.º 1
0
        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();
            }
        }
Exemplo n.º 2
0
        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();
            }
        }
Exemplo n.º 3
0
 public Point FixInvalidPointPosition(Point point)
 {
     return(MatrixHelper.TransformPoint(_matrix.Invert(), point));
 }
Exemplo n.º 4
0
        public void ZoomTo(double zoom, Point point)
        {
            _matrix = MatrixHelper.ScaleAtPrepend(_matrix, zoom, zoom, point.X, point.Y);

            Invalidate();
        }