WPF 分辨率和与设备无关的图形
关于分辨率和与设备无关的图形
可通过以下两个系统因子来确定屏幕上的文本大小和图形大小:分辨率和 DPI。 分辨率描述出现在屏幕上的像素数量。 由于分辨率变大,因此像素会变小,从而导致所显示的图形和文本会变小。 在将显示器的分辨率从 1024 x 768 更改为 1600 x 1200 时,显示器上所显示的图形会小得多。
另一个系统设置 (DPI) 以像素数来描述屏幕英寸的大小。 大多数 Windows 系统的 DPI 都为 96,这意味着一屏幕英寸等于 96 个像素。 增加 DPI 设置会使屏幕英寸变大,减小 DPI 会使屏幕英寸变小。 这意味着屏幕英寸与实际的英寸不相等;在多数系统上,二者很有可能不相等。 当您增加 DPI 时,屏幕英寸会变大,因此支持 DPI 的图形和文本也会变大。 增加 DPI 可能会增强文本的可读性,在高分辨率下尤其如此。
并非所有的应用程序都支持 DPI:一些应用程序将硬件像素作为其主要计量单位;更改系统 DPI 不会对这些应用程序产生任何影响。 许多其他应用程序都使用支持 DPI 的单位来描述字号,使用像素来描述任何其他内容。 DPI 太小或太大都可能会导致这些应用程序出现布局问题,因为应用程序的文本会随着系统的 DPI 设置而伸缩,而应用程序的 UI 却不会出现此类问题。 对于使用 WPF 开发的应用程序,此问题已经消除。
WPF 支持通过将与设备无关的像素(而不是硬件像素)用作其主要计量单位来自动伸缩;图像和文本会适当伸缩,而无需应用程序开发人员执行任何额外的工作。 下图显示了 WPF 文本和图形在不同 DPI 设置下的显示方式的示例。

不同 DPI 设置下的图形和文本