public static float GetDpiX() { System.Windows.Forms.Panel p = new System.Windows.Forms.Panel(); System.Drawing.Graphics g = System.Drawing.Graphics.FromHwnd(p.Handle); return g.DpiX; }
private void Window_MouseMove(object sender, MouseEventArgs e){ NavBtnList.Clear(); Point mouseP = e.GetPosition(this); VisualTreeHelper.HitTest(this, new HitTestFilterCallback(HitFilter), new HitTestResultCallback(HitResult), new PointHitTest
方法一:用ManagementClass来获取.需要引入System.Management.dll; using (ManagementClass mc = new ManagementClass("Win32_DesktopMonitor")) { using (ManagementObjectCollection moc = mc.GetInstances()) { ; // dpi for x ; // dpi for y foreach (ManagementObject ea
原文:C# API 获取系统DPI缩放倍数跟分辨率大小 using System; using System.Drawing; using System.Runtime.InteropServices; namespace XYDES { public class PrimaryScreen { #region Win32 API [DllImport("user32.dll")] static extern IntPtr GetDC(IntPtr ptr); [DllImport(&
using System; using System.Drawing; using System.Runtime.InteropServices; namespace XYDES { public class PrimaryScreen { #region Win32 API [DllImport("user32.dll")] static extern IntPtr GetDC(IntPtr ptr); [DllImport("gdi32.dll")] stati
public partial class Form1 : Form { public Form1() { InitializeComponent(); SetProcessDPIAware(); //重要 IntPtr screenDC = GetDC(IntPtr.Zero); int dpi_x = GetDeviceCaps(screenDC, /*DeviceCap.*/LOGPIXELS