2010-11-11 66 views
15

我正在學習WPF,WPF使用與設備無關的像素。但我無法真正理解它。爲什麼它是一個優於設備相關像素的優勢,如果大多數其他應用程序都依賴於設備,並且WPF應用程序不適用它們呢?設備無關像素

回答

8

與設備無關的像素的優點是,指定UI時,無論用戶的屏幕分辨率如何,您都可以確定UI組件在用戶設備上顯示的大小。不幸的是,它不是那麼簡單,因爲它需要用戶具有各種設置「正確」設置,並且可以被想要改變其設備的分辨率的用戶覆蓋(例如,想要以低分辨率運行以使文本更易於閱讀)。

除了張貼的其他鏈接,你也可以看看這個:http://www.wpflearningexperience.com/?p=41

注意,您可以啓用捕捉控制與設置爲true SnapsToDevicePixels設備的像素,以避免發生在模糊在兩個設備像素之間的邊界上繪製水平/垂直線。

0

它是關於UI和字體縮放取決於該系統的DPI設置:

並非所有應用程序都DPI感知:一些 使用硬件像素作爲主 單元測量的;更改 系統DPI對這些 應用程序沒有影響。許多其他應用程序 使用DPI感知單位來描述字體大小,但使用像素來描述 一切。使DPI太小或太大可能導致這些應用程序 的佈局問題 ,因爲應用程序的文本使用系統的DPI設置縮放 ,但 應用程序的UI沒有。對於 使用WPF開發的應用程序,此 問題已被消除。

WPF通過 支持自動縮放使用獨立於設備的像素作爲 測量的它的主要單元, 代替硬件像素;圖形 和正確的文本沒有任何 額外的工作從應用 開發。

這是取自鏈接Kishore提供。 (http://msdn.microsoft.com/en-us/library/ms748373.aspx

6

在瞭解設備無關單元之前,需要了解DPI是什麼。 DPI是每英寸的點數,這意味着一英寸內會有一定數量(通常爲96)的像素。但重要的是要了解的是,在Win32環境下,這英寸的大小並不是固定的。因此,當通過更改分辨率增加/減少點數時,英寸中的點數會增加或減少,結果「英寸」的大小會增加或減少。 但是,在WPF中,英寸的大小與物理英寸一樣好,因此每次DPI改變時,系統都會相應地自我調整。