我正在学习WPF,WPF使用与设备无关的像素。但我真的不明白。为什么它优于设备相关像素,如果大多数其他应用程序依赖于设备而WPF应用程序不是它们会突出?
答案 0 :(得分:9)
设备无关像素的优势在于,在指定UI时,您可以确定UI组件在用户设备上显示的大小,而不管用户的屏幕分辨率如何。不幸的是,它不是那么简单,因为它要求用户“正确”设置各种设置,并且可以被想要更改其设备分辨率的用户覆盖(例如,想要改变其设备分辨率的用户)以低分辨率运行以使文本更易于阅读。)
除了发布的其他链接外,您还可以查看以下链接:http://www.wpflearningexperience.com/?p=41
请注意,您可以将SnapsToDevicePixels设置为true,将控件捕捉到设备像素,以避免在两个设备像素之间的边界上绘制水平/垂直线时出现的模糊。
答案 1 :(得分:6)
在了解设备独立单元之前,需要了解DPI是什么。 DPI是每英寸点数,这意味着一英寸中会有一定数量(通常为96个)的像素。但重要的是要理解在Win32环境中,这个英寸的大小不是固定的物理英寸。因此,当通过改变分辨率增加/减少点的数量时,一英寸中的点的数量将更多/更少,因此“英寸”尺寸增大或减小。 但是在WPF的情况下,英寸尺寸与物理英寸一样好,因此每次DPI更改时,系统都会相应地自行调整。
答案 2 :(得分:0)
它取决于系统的DPI设置:UI和字体缩放:
并非所有应用程序都支持DPI:有些 使用硬件像素作为主要像素 测量单位;改变了 系统DPI对这些没有影响 应用。许多其他应用 使用DPI感知单位来描述字体 尺寸,但使用像素来描述 其他一切。制作DPI也是如此 小或大都会导致布局 这些应用的问题, 因为应用程序的文本比例 用系统的DPI设置,但是 应用程序的UI没有。这个 问题已经消除了 使用WPF开发的应用程序。
WPF支持自动缩放 使用独立于设备的像素作为 它的主要计量单位, 而不是硬件像素;图像 并且没有任何正确的文本缩放 应用程序的额外工作 显影剂。
这取自Kishore提供的链接。 (http://msdn.microsoft.com/en-us/library/ms748373.aspx)