Ejemplo n.º 1
0
        static DpiHelper()
        {
            IntPtr dC = NativeMethodsUltimate.GetDC(IntPtr.Zero);

            if (dC != IntPtr.Zero)
            {
                DpiHelper.DeviceDpiX = (double)NativeMethodsUltimate.GetDeviceCaps(dC, 88);
                DpiHelper.DeviceDpiY = (double)NativeMethodsUltimate.GetDeviceCaps(dC, 90);
                NativeMethodsUltimate.ReleaseDC(IntPtr.Zero, dC);
            }
            else
            {
                DpiHelper.DeviceDpiX = 96.0;
                DpiHelper.DeviceDpiY = 96.0;
            }
            System.Windows.Media.Matrix identity  = System.Windows.Media.Matrix.Identity;
            System.Windows.Media.Matrix identity2 = System.Windows.Media.Matrix.Identity;
            identity.Scale(DpiHelper.DeviceDpiX / 96.0, DpiHelper.DeviceDpiY / 96.0);
            identity2.Scale(96.0 / DpiHelper.DeviceDpiX, 96.0 / DpiHelper.DeviceDpiY);
            DpiHelper.transformFromDevice = new MatrixTransform(identity2);
            DpiHelper.transformFromDevice.Freeze();
            DpiHelper.transformToDevice = new MatrixTransform(identity);
            DpiHelper.transformToDevice.Freeze();
        }