代码之家  ›  专栏  ›  技术社区  ›  Quentamia

Silverlight和WPF使用什么测量单位?

  •  12
  • Quentamia  · 技术社区  · 15 年前

    有人知道Silverlight/WFP使用什么测量单位吗?例如,如果我创建了一个新按钮并将其高度设置为150,那么这是150像素吗?要点?毫米?

    4 回复  |  直到 15 年前
        1
  •  20
  •   Uwe Keim    7 年前

    MSDN的文档说明 FrameworkElement.Height 属性(用于Silverlight)引用:

    然而, for WPF

    独立于设备的单位(1/96英寸)测量

    所以,回答你的问题。。。 对于Silverlight, 独立于设备的单元

        2
  •  26
  •   Ian Griffiths    15 年前

    尽管在 理论

    打印时通常是这样。但在荧屏上很少是这样。原因是Windows几乎总是知道打印机的真实分辨率,但几乎从不知道屏幕的真实分辨率。

    例如,我的电脑上有三个屏幕。Windows认为它们的分辨率都是每英寸96像素。实际上没有。其中两个分辨率为每英寸101像素,一个分辨率为每英寸94像素。(为什么?因为Windows没有办法自己解决真正的问题,我也没有告诉它。它们都有相同像素大小的小说是接近事实的,而且是一个方便的小说。)

    所以实际上,这意味着在我的电脑上,WPF的单位要么是1/100英寸,要么是1/94英寸。(也就是说,实际上,WPF中1个单位的大小正好是我的特定设置中1个像素的大小,不管像素有多大。)

    我可以改变。我可以重新配置窗口-我可以告诉它所有3个屏幕的实际分辨率,在这种情况下,名义和实际的WPF单元大小将一致。或者我可以撒谎-我可以说我有200像素每英寸的屏幕,在这种情况下,一切都将是巨大的。。。

    因此,WPF中的问题1没有可靠的答案,在屏幕上几乎可以是任何东西。(实际上,大多数情况下,它都是1像素,这仅仅是因为如果你不告诉Windows任何其他信息,它默认假设你的屏幕有1/96英寸高的像素,这与1wpf单位相同。对于大多数桌面屏幕来说,这很可能是一个很好的猜测。但这并不普遍。例如,在配置了以前称为“大字体”的系统上,您会发现一个不同的标称屏幕分辨率,1个WPF单位将对应略多于1个物理像素——实际上大约为1.2。)

    有了打印机,就更容易预测了。打印机总是能够正确地报告其分辨率。所以,如果你打印的东西是96 WPF单位高,你可以相信它将是1英寸高。

        3
  •  2
  •   AnthonyWJones    15 年前

        4
  •  1
  •   Liviu Mandras    15 年前

    他们是 独立于设备的单元 .

    here.