WPF學習筆記之 WPF概述篇(兩大亮點)

2021-06-28 14:36:01 字數 1525 閱讀 5888

wpf的兩大亮點

一、硬體加速

wpf 圖形顯示是基於directx(最初是為遊戲顯示開發的圖形顯示引擎),而非gdi/gdi+。

wpf的目標是將盡可能多的工作交給顯示卡處理,所以複雜圖形通常屬於渲染範圍(由gpu處理)而不屬於處理器範圍(由計算機的cpu處理)。也就是說,可以讓cpu空閒下來去完成其他工作,充分利用顯示卡的功能,並且還可以充分利用未來新顯示卡所具備的不斷增加的新功能。

wpf渲染級別(wpf tiers)

顯示卡功能的區別是非常重要的。當wpf訪問顯示卡時,它會考慮許多因素,包括顯示卡上ram的數量、對畫素著色器(pixel shader)的支援(顯示卡提供的計算每個畫素效果的程式,如透明效果),以及對頂點著色器(vertex shader)的支援(顯示卡提供的計算每個三角形頂點數值的程式,如3d物件的著色)。根據這些細節,wpf會指定乙個渲染級別值。

wpf提供了三個渲染級別,如下所示:

rendering tier 0:顯示卡將不提供任何硬體加速功能。該級別和7.0或更低版本的directx相對應。

rendering tier1:顯示卡可以提供部分硬體加速功能。該級別和7.0以上9.0以下版本的directx相對應。

rendering tier2:所有的特性都將被硬體加速。該級別和directx 9.0及以上版本相對應。

二、與解析度無關

1、系統dpi:1英吋上的畫素點(預設為96)。1英吋=2.54厘公尺

如何計算系統dpi:如圖

23英吋-是包含邊框的。

可視面積-是顯示器顯示板的大小,轉換為英吋

509.184/10/2.54 = 20.04英吋 - 寬

286.416/10/2.54 = 11.28英吋 - 高

解析度設定為1920×1080,則當前系統dpi:

1920/20.04 = 96

1080/1128 = 96

改變「顯示」或「解析度」設定,都會使系統dpi改變(非預設的96,一般顯示器預設都為96)

wpf從發布之日起,一直將「解析度無關(resolution independence)」作為其亮點,聲稱使用wpf製作的使用者介面在輕巧的ultra-mobile pc的螢幕上和在50英吋的電視機上都能很好地顯示。微軟之所以稱wpf具備「解析度無關」這一特性,主要是因為wpf的座標單位設計成為以1/96英吋為乙個邏輯畫素單位,而不是與裝置相關的畫素單位。

(1)wpf在列印得時候可以做到「解析度無關」,即同乙個wpf使用者介面和繪製的圖形尺寸在任何一台印表機上輸出都是一致的;

(2)當顯示器實際象元的物理尺寸和系統設定的dpi保持一致的時候,wpf可以在顯示器上做到「解析度無關」,即同乙個wpf使用者介面和繪製的圖形尺寸在任何一台顯示器(實際象元的物理尺寸和系統設定的dpi保持一致)上輸出都是一致的。反之則無法保證。

兩台機器上的1英吋裡的畫素點個數一樣,則上面顯示的東西大小不會變。

兩天機器的dpi不一樣則顯示的介面大小不一樣

個人總結:只要裝置的解析度為預設解析度,則wpf的元素尺寸在這些裝置上都不會變。

WPF學習筆記一 WPF概述

windows presentation foundation wpf 是下一代顯示系統,用於生成能帶給使用者震撼視覺體驗的 windows 客戶端應用程式。使用 wpf,您可以建立廣泛的獨立應用程式以及瀏覽器承載的應用程式。今年由於專案需求,開始學習使用wpf,本系列文章將記錄學習wpf中遇到的各...

WPF學習(1)WPF概述

wpf是microsoft繼winform之後的又一使用者介面設計框架,和windows communication foundation wcf windows workflow foundation wf 一起隨.net 3.0發布。wpf是當前眾多優秀技術的集大成者,有很多的亮點。為了充分利用...

WPF入門學習(概述)

1。為什麼要學習wpf sliverlight是wpf的乙個子集,可支援跨域瀏覽器。現在sliverlight有一定應用了。所以學習了wpf再看silverlight就簡單多了。還有wpf可以用用在桌面上開發,雖然不多,相信以後會有的。2。wpf的優點 wpf主要是用來開發介面的,但介面漂亮。因為它...