c# 画面表示解像度の倍率を取得する

1.X軸を取得する

 /// <summary>
        ///  获取显示器分辨率放大倍数
        /// </summary>
        /// <returns>宽度倍数</returns>
        public static float GetHostDisplayResolutionScaleX()
        {
           
                IntPtr dC = GetDC(IntPtr.Zero);
                GetDeviceCaps(dC, 0x76);
                GetDeviceCaps(dC, 8);
                float num = ((float)GetDeviceCaps(dC, 0x76)) / ((float)GetDeviceCaps(dC, 8));
                ReleaseDC(IntPtr.Zero, dC);
                return num;
            
        }

2.Y軸を取得する

  /// <summary>
        /// 获取显示器分辨率放大倍数
        /// </summary>
        /// <returns>高度倍数</returns>
        public static float GetHostDisplayResolutionScaleY()
        {
          
                IntPtr dC = GetDC(IntPtr.Zero);
                float num = ((float)GetDeviceCaps(dC, 0x75)) / ((float)GetDeviceCaps(dC, 10));
                ReleaseDC(IntPtr.Zero, dC);
                return num;
            
        }

3. システム DLL ライブラリを呼び出します。

  [DllImport("User32.dll")]
        public static extern IntPtr GetDC(IntPtr A_0);
        [DllImport("gdi32.dll")]
        public static extern int GetDeviceCaps(IntPtr A_0, int A_1);
        [DllImport("User32.dll")]
        public static extern IntPtr ReleaseDC(IntPtr A_0, IntPtr A_1);

おすすめ

転載: blog.csdn.net/weixin_38826167/article/details/127007024