WPF Matrix helper methods.
Beispiel #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="panelSize"></param>
        /// <param name="elementSize"></param>
        public void Fill(Size panelSize, Size 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();
            }
        }
Beispiel #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="panelSize"></param>
        /// <param name="elementSize"></param>
        public void Extent(Size panelSize, Size 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();
            }
        }
Beispiel #3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="zoom"></param>
        /// <param name="point"></param>
        public void ZoomTo(double zoom, Point point)
        {
            _matrix = MatrixHelper.ScaleAtPrepend(_matrix, zoom, zoom, point.X, point.Y);

            Invalidate();
        }