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(); }