Points and Pixels

silverlightWindows phone程序中经常用到 FontSize 但是这个大小到底是多少呢?

silverlight 所有的大小都是 pixels 为单位的。当然fontsize也不例外,当你指定FontSize=”36” 时,显示文本的最上面到最下面的高度是接近36 pixels ,但是这将导致 所在的TextBlock的实际高度 大约48 pixels,也就是大约比FontSize 33%,这些增加的空间就是行距,目的是使行与行直接不会互相干扰。

传统上,字体大小是以points为单位的,在古典的排版格式中,一个point 是非常接近于1/72 英寸,但是在数字排版格式中,point 常常被假设就是1/72 英寸, 一个被设置成72 points的字体 从字符的上面到下面接近1 英寸,(I say “approximately” because the point size indicates a typographic design height,and it’s really the creator of the font who determines exactly how large the characters of a 72-point font should be.

但是如何在pixelspoints直接进行转换呢,当然我们不排除那些特殊的输出设备,在一个600 DPIdots-per-inch)的打印机,72-point的字体将会显示600pixels的高度

我们平时使用的桌面显示器的分辨率 100DPI左右,例如:假如一个21寸的显示器 水平方向显示1600 pixels 竖直方向显示1200 pixels ,那么对角线就是2000 pixels,除以21英寸得到其DPI约为 95 DPI,默认状态下Windows会假定显示分辨率为96DPI,这种情况下字体大小pixelspoints之间的关系可以使用下面的公式表示:

points=3/4 *pixels

pixels=4/3 *points

虽然这个公式仅仅适用于一般的显示器,但是人们还是很乐意使用这个公式来进行转换的,所以当我们设置FontSize=”36” 的时候,也可以说是设置了 27-point的字体大小。

对于一个指定point大小的字体,可以通过增加33% 获取其pixel大小,当在TextBlock中设置的时候,TextBlock也会比设置的FontSize增高另一个33%

当遇到一个高分辨率的设备的时候 这个问题会变得更加复杂,比如说对于Windows phone 7,显示为480*800的对角线约为933piexls,对于一个3.5英寸的手机设备来说,pixel密度接近 264 DPI(屏幕分辨率通常得再乘以24),将近是一般桌面显示器分辨率的2.5倍,这并不意味着在一般显示器上显示的字体大小需要乘以2.5 才能在手机上正常显示,高分辨率和更近的查看距离可以允许更小的字体显示在手机上。

 

注:屏幕大小是以英制的寸为单位,对角线量。21寸指的是屏幕的对角线为21英寸,1英寸等于公制的2.54厘米。21英寸即53.34厘米。 因为屏幕虽然是矩形,但不一定是什么比例的,比如:可能是4:3,也可能是16:10或其它比例。这样,显然用长与宽做为依据是不合理的,同理,如果用面积的话,还需要计算长与宽之积,比较麻烦,另外,只要对角线长度相同的两个矩形,不管它们分别是什么比例的,面积必定相同。 所以最简单的办法就是测屏幕的对角线看大小,由于这是面板工厂里测量面板的最直观、最简单的方法(一个人用尺对角线一量就知道大小,长宽还需要测两遍),所以市面上也就这样使用了。

原文地址:https://www.cnblogs.com/yinghuochong/p/2158440.html