Example #1
0
        private void refreshMagnifier()
        {
            Point  center          = MousePosition.GetValueOrDefault(new Point());
            int    radiusMagnifier = MagnifierRadius;
            double zoom            = MagnifierZoom;

            if (!GetIsZoomEnabled())
            {
                magnfier.Visibility = Visibility.Collapsed;
                return;
            }
            else
            {
                magnfier.Visibility = Visibility.Visible;
            }



            if (_currentBitmapData == null)
            {
                return;
            }
            int       radius = (int)(radiusMagnifier / zoom);
            Stopwatch st     = new Stopwatch();

            st.Start();

            var bitmapScaled = Helper.GetZoomedVersionOfRegion(_currentBitmapData, getMagnifierRegion(center, radiusMagnifier, zoom), zoom, zoom);
            var src          = Helper.ImageSourceFromHBitmap(bitmapScaled);

            magnifierImg.Source      = src;
            magnfier.RenderTransform = new MatrixTransform(1, 0, 0, 1, center.X - radiusMagnifier, center.Y - radiusMagnifier);
            magnfier.Clip            = new EllipseGeometry(new Point(radiusMagnifier, radiusMagnifier), radiusMagnifier, radiusMagnifier);

            st.Stop();
            System.Diagnostics.Debug.WriteLine("refreshing magnifier: " + st.ElapsedMilliseconds + " ms");
        }