为什么72 dpi的图像在96 dpi屏幕上看起来更大

3
  1. 我将屏幕分辨率设置为72 DPI,并设计了一个小的PNG图像,大小为100x100 @ 72 DPI。这意味着72像素代表1英寸。
  2. 现在我将屏幕分辨率改为120 DPI,并使用100x100 @ 120 DPI重新设计了同样的PNG图像,这意味着120像素代表1英寸。
  3. 然后我将屏幕分辨率更改为96 DPI。这意味着96像素代表1英寸。然后创建了一个WPF应用程序,并添加了两个图片(步骤1和步骤2) - 我已将拉伸模式设置为None

不确定我是否正确理解了概念,因为我希望72 dpi图像在96 dpi下看起来更小,因为如果72像素代表该图像的1英寸,则在新配置中,96像素代表1英寸。因此,我认为72 dpi图像会变小。但情况并非如此。事实上,相反的是,72 dpi图像在96 dpi下看起来更大。为什么?这是因为WPF在处理图像时始终默认为96 dpi吗?

enter image description here

更新 即使在120 dpi(将系统dpi设置为120),为什么只有96 dpi的图像完美适合200x200的框? enter image description here


请问您能展示一下那张图片的 XAML 吗? - Gusdor
XAML @ http://pastebin.com/FZMvTpwsXAML(可扩展应用程序标记语言)是一种用于创建用户界面的XML标记语言。它被广泛用于Microsoft .NET Framework中的WPF(Windows Presentation Foundation)技术,以及Silverlight和UWP(通用Windows平台)应用程序开发中。在XAML中,可以定义UI元素、布局、样式、动画等内容,并且可以使用绑定和事件处理程序来实现交互性。XAML还支持使用自定义控件和资源字典来扩展其功能。 - sudarsanyes
我猜我理解了问题的发送部分, “为什么即使在120 dpi(将系统dpi设置为120),只有96 dpi的图像才能完美地适应200x200的框?” 我试图将图像大小与网格线的边界进行比较,而网格控件本身是由WPF进行缩放的!如果我截取屏幕截图并比较所占像素,在120dpi下,120dpi的图像在第二列中按预期测量为200x200!如果我错了,请纠正我。 - sudarsanyes
我的办公室无法访问Pastebin。请您能否将其内容放在问题中? - Gusdor
2个回答

2
您对WPF图形单位的设备独立性做出了一些奇怪的假设。
在WPF世界中,设备独立像素值为1/96英寸,无论屏幕设置如何。这就是为什么只有96 dpi实验是正确的原因。
其次,您的监视器本机dpi也会产生影响。
“DPI设置”是我们将在测试中变化的第二个比例因子。WPF并不知道您的显示器的实际物理DPI值是多少。相反,WPF使用此第二个比例因子“DPI设置”的当前设置。如果“DPI设置”与真正的物理DPI不匹配,则WPF的“分辨率独立性”似乎会破坏 - 尽管它实际上并没有。参考链接:http://www.wpflearningexperience.com/?p=41

1
一张每英寸有72个点的图像将每英寸有72个点,而一张每英寸有120个点的图像将每英寸有120个点。因此,如果我们显示一英寸乘一英寸的图像,每边在72 DPI图像中将有72个点,在120 DPI图像中将有120个点。
因此,72 DPI图像中的每个点比120图像中的每个点大,因此整个72 DPI图像比120 DPI图像大。
如需进一步阅读,您可以查看Mindfire Solutions网站上的DPI设置和WPF应用程序的分辨率页面。

谢谢您的答复。那么您的意思是WPF会缩放每个点的大小吗?我之前认为点的大小是固定的。同时我注意到,只有96 dpi的图像可以完美地适配100x100的尺寸。96以上的图像看起来很小,而96以下的图像则显得很大。 即使在120 dpi(将系统dpi设置为120),只有96 dpi的图像才能完美地适配100x100的盒子!为什么呢? - sudarsanyes
它看起来仍然没有回答我的问题,为什么即使在120 dpi(将系统dpi设置为120),只有96 dpi的图像才能完美地适配100x100的框? - sudarsanyes
抱歉,我无法回答这个问题... 可能与您的图像有关,或者可能是您的屏幕没有准确显示96 DPI。 - Sheridan
我有两个显示器,在两个显示器上都测试过了 - 仍然是相同的行为。这些图像是使用Paint.net创建的,并且在其头部似乎有DPI信息。为了更清晰,我在这个问题中附上了一个屏幕截图。 - sudarsanyes

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接