本文将介绍 Windows 系统中高 DPI 开发的基础知识。由于涉及到坐标转换,这种转换经常发生在计算的不知不觉中;所以无论你使用哪种 Windows 下的 UI 框架进行开发,你都需要了解这些内容,以免不断踩坑。
本文内容
各种不同的 Windows 桌面 UI 框架
微软主推的 Windows 桌面 UI 框架有:
- UWP
- WPF
- Windows Forms
- Win32 与 C++
- DirectX
后两者实际上并不是 UI 框架,是 UI 框架的底层不同实现。当然你单纯凭借 Win32 和 DirectX 去开发 GUI 应用也没有人拦你,只不过如果你试图只用 Win32 和 DirectX 而不进行各种 UI 组件封装的话,最终会非常痛苦的。
UWP 只支持 Windows 10(当然也分不同的小版本,兼容起来有些痛苦)。
WPF 和 Windows Forms 的最新版本只支持 Windows 7 SP1 及以上系统。如果要支持 Windows 7 和更早的系统,你需要降低 .NET Framework 的版本至 4.6.2 及以下;如果要 XP 支持,还需要到 4.0 及以下。