gpt4 book ai didi

wpf - Silverlight 和 WPF 使用哪些度量单位?

转载 作者:行者123 更新时间:2023-12-03 22:48:37 31 4
gpt4 key购买 nike

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

在继续编写代码之前,我在 Adob​​e Illustrator 中设计了所有应用程序,尽管我尝试将所有内容设置为 Illustrator 文件中的尺寸,但 Silverlight 应用程序通常更大。

最佳答案

尽管理论上,WPF 中的 1 个单位是 1/96 英寸,但在实践中通常并非如此。

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

例如,我的计算机上连接了三个屏幕。 Windows 认为它​​们都具有每英寸 96 像素的分辨率。实际上他们没有。其中两个的分辨率为每英寸 101 像素,一个的分辨率为每英寸 94 像素。 (为什么?因为 Windows 无法自行确定真正的分辨率,而我没有告诉它。关于它们都具有相同像素大小的虚构接近事实,结果证明是一种方便的虚构。 )

因此,当我在 WPF 中创建一个宽度和高度都设置为 96 的矩形时,矩形的大小实际上取决于它出现在哪个屏幕上。 Windows 认为所有 3 个屏幕的分辨率均为每英寸 96 像素,因此无论出现在哪个屏幕上,它都会将矩形呈现为 96 像素高和宽。这将使它在两个屏幕上显示为 0.95 英寸高,在第三个屏幕上显示为 1.02 英寸高。

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

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

这里的基本问题是计算机没有标准的方法来发现屏幕上物理像素的真实大小,很少有人会费心去手动设置它。 (事实上​​,你可以通过“正确”配置它来引起问题,因为很多软件在你这样做时不能正常运行。)所以大多数 Windows 计算机不会正确地向 WPF 报告物理像素大小 - 他们可以' t 因为他们不知道。

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

使用打印机,这一切都更加可预测。打印机总是能够正确报告其分辨率。因此,如果您打印 96 WPF 单位高的东西,您可以确信它是 1 英寸高。

关于wpf - Silverlight 和 WPF 使用哪些度量单位?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4087366/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com