DpiHelper.cs 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.Windows;
  7. using System.Windows.Media;
  8. namespace MECF.Framework.UI.Core.DxfScript.Converter
  9. {
  10. public static class DpiHelper
  11. {
  12. //public static (double DpiX, double DpiY) GetDpi(Window window)
  13. //{
  14. // var source = PresentationSource.FromVisual(window);
  15. // if (source?.CompositionTarget != null)
  16. // {
  17. // var transformToDevice = source.CompositionTarget.TransformToDevice;
  18. // double dpiX = 96.0 * transformToDevice.M11;
  19. // double dpiY = 96.0 * transformToDevice.M22;
  20. // return (dpiX, dpiY);
  21. // }
  22. // return (96.0, 96.0); // Default DPI
  23. //}
  24. public static double GetPixelsPerDip(Visual visual)
  25. {
  26. var source = PresentationSource.FromVisual(visual);
  27. if (source?.CompositionTarget != null)
  28. {
  29. return source.CompositionTarget.TransformToDevice.M11;
  30. }
  31. return 1.0; // Default PixelsPerDip
  32. }
  33. }
  34. }