设备无关的像素

时间:2010-11-11 10:04:58

标签: wpf

我正在学习WPF,WPF使用与设备无关的像素。但我真的不明白。为什么它优于设备相关像素,如果大多数其他应用程序依赖于设备而WPF应用程序不是它们会突出?

3 个答案:

答案 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