เวลาทำการ Scale หน้า Screen ของ Window 10 เช่น 100,125,150% จะมีปัญหา ในการ map point widnow ไปยัง Screen จะต้องใช้ scale เช่น 125 คือ 1.25 คุณ กับ พิกัด เดิม
ปัญหา คือ ไม่มี API โดยตรงในการหา Scale ต้องคำนวน
Graphics g = Graphics.FromHwnd(IntPtr.Zero);
IntPtr desktop = g.GetHdc();
int LogicalScreenHeight = GetDeviceCaps(desktop, (int)DeviceCap.VERTRES);
int PhysicalScreenHeight = GetDeviceCaps(desktop, (int)DeviceCap.DESKTOPVERTRES);
int logpixelsy = GetDeviceCaps(desktop, (int)DeviceCap.LOGPIXELSY);
float screenScalingFactor = (float)PhysicalScreenHeight / (float)LogicalScreenHeight;
float dpiScalingFactor = (float)logpixelsy / (float)96;
VERTRES = 10,
DESKTOPVERTRES = 117,
LOGPIXELSY = 90,
ไม่มีความคิดเห็น:
แสดงความคิดเห็น