WPF 分辨率无关性原理

时间:2023-03-10 01:28:41
WPF 分辨率无关性原理

WPF在计算窗口尺寸大小时使用的是系统的DPI设置。WPF窗口以及窗口中所有的元素都是使用设备无关单位度量。一个设备无关单位被定义为1/96英寸。

  [物理单位尺寸]=[设备无关单位尺寸]*[系统DPI]=1/96英寸*96dpi=1像素。

  当系统默认dpi设置为96dpi时,也就是需要96个像素填充1英寸的空间,如果系统dpi设置为120dpi(对于高分分辨率显示器),这时的物理单位尺寸为:

  [物理单位尺寸]=[设备无关单位尺寸]*[系统DPI]=1/96英寸*120dpi=1.25像素。

  也就是说当把系统dpi设置为120dpi时,WPF渲染引擎假定了一个设备无关单位等于1.25个像素,如果显示了一个96*96大小的按钮,物理尺寸实际为120*120(96*1.25=120)。也就是说在一个标准显示器上(96dpi)大小为1英寸的按钮,在像素高的显示器上仍然为1英寸大小。

  WIN7上更改系统dpi如下图:

  

WPF 分辨率无关性原理

本文来自hoho_luo的博客,原文地址:http://www.cnblogs.com/hoholuo/archive/2011/06/21/2086427.html