WPF度量系統_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > WPF度量系統

WPF度量系統

 2014/8/18 21:24:31  yetsen  程序员俱乐部  我要评论(0)
  • 摘要:和Winform不同,WPF的度量單位不是像素,而是設備無關單位DIU,其大小總是1/96吋那麽,WPF中一個寬度爲96的按鈕,到底是多少個像素呢?答:取決於系統DPI。計算公式爲:實際像素=設備無關尺寸*系統DPI這樣,在系統DPI爲96時(windows默認值),按鈕正好占用96像素;而系統DPI爲120時,將占用120個像素像素尺寸有了,再已知屏幕DPI,就可以推算出物理尺寸了。而屏幕DPI取決於屏幕尺寸和分辨率。比如:12.5吋筆記本,1366*768的屏幕DPI約125dpi;18
  • 标签:

 

和Winform不同,WPF的度量單位不是像素,而是設備無關單位DIU,其大小總是1/96吋

那麽,WPF中一個寬度爲96的按鈕,到底是多少個像素呢?

答:取決於系統DPI。

計算公式爲:實際像素 = 設備無關尺寸*系統DPI

這樣,在系統DPI爲96時(windows默認值),按鈕正好占用96像素;而系統DPI爲120時,將占用120個像素

 

像素尺寸有了,再已知屏幕DPI,就可以推算出物理尺寸了。

而屏幕DPI取決於屏幕尺寸和分辨率。

比如:12.5吋筆記本,1366*768的屏幕DPI約125dpi;18.5吋臺式機,1366*768的屏幕DPI約85dpi

不難算出,96像素在筆記本上的長度小於1吋,而在臺式機上會大於1吋

 

通常LCD顯示器有個自然分辨率,在該分辨率下顯示效果最佳,所以屏幕DPI可以説是固定的,設備出廠時就已經決定了。

姑且把屏幕DPI稱爲硬DPI(不大會變),而前面的系統DPI爲軟DPI(可以在控制面板中修改)。

 

説了這麽多,WPF度量系統的優勢在哪呢?

答:如果衹用默認的系統DPI,WPF的度量系統和Winform相比沒有優勢。因爲此時WPF的度量單位等同于像素,兩者的表現完全一樣。

不過當改變系統DPI的時候,WPF的優勢就體現出來了。

例如:當系統DPI增加到120時,WPF會自動增加像素尺寸,以顯示更多的細節,直觀上就是控件變大了,細節更清楚了

而此時Winform的尺寸卻沒法自動變化,還是老樣子,雖然系統提供了更高的像素密度,但Winform卻無法顯示更多的細節。

 

不過WPF的這種方式有時也會帶來問題,比如:指定窗口的寬度爲1366,在默認的系統DPI下沒問題,但如果增加系統DPI,該窗口會超出屏幕範圍。

此時反倒是winform的固定像素方式不會出問題,所以孰優孰劣也要看場合。

  • 相关文章
发表评论
用户名: 匿名