1. 程式人生 > >WPF零基礎入門系列(一) WPF簡介

WPF零基礎入門系列(一) WPF簡介

WPF零基礎入門系列(一) WPF簡介

WPF(Windows Presentation Foundation)是微軟推出的基於Windows 的使用者介面框架,屬於.NET Framework 3.0的一部分。它提供了統一的程式設計模型、語言和框架,真正做到了分離介面設計人員與開發人員的工作;同時它提供了全新的多媒體互動使用者圖形介面。

定義

WPF 為Windows Presentation Foundation的首字母縮寫 ,中文譯為“Windows呈現基礎”,其原來代號為“Avalon”,因與“我佩服”拼音首字母組合一樣,國內有人調侃地稱之為“我佩服”。由 .NET Framework 3.0 開始引入,與 Windows Communication Foundation及 Windows Workflow Foundation並行為新一代 Windows作業系統以及 WinFX 的三個重大應用程式開發類庫。

WPF是微軟新一代圖形系統,執行在.NET Framework 3.0及以上版本下,為使用者介面、2D/3D 圖形、文件和媒體提供了統一的描述和操作方法。基於DirectX 9/10技術的WPF不僅帶來了前所未有的3D介面,而且其圖形向量渲染引擎也大大改進了傳統的2D介面,比如Vista中的半透明效果的窗體等都得益於WPF。 程式設計師在WPF的幫助下,要開發出媲美Mac程式的酷炫介面已不再是遙不可及的奢望。 WPF相對於Windows客戶端的開發來說,向前跨出了巨大的一步,它提供了超豐富的.NET UI 框架,集成了向量圖形,豐富的流動文字支援(flow text support),3D視覺效果和強大無比的控制元件模型框架。

Windows Presentation Foundation(以前的代號為“Avalon”)是 Microsoft 用於 Windows 的統一顯示子系統,它通過 WinFX 公開。它由顯示引擎和託管程式碼框架組成。Windows Presentation Foundation 統一了 Windows 建立、顯示和操作文件、媒體和使用者介面 (UI) 的方式,使開發人員和設計人員可以建立更好的視覺效果、不同的使用者體驗。Windows Presentation Foundation 釋出後,Windows XP、Windows Server 2003 和以後所有的 Windows作業系統版本都可以使用它。

WPF是.Net Framework 3.0裡新推出的主打功能之一,加上Vista整合.Net Framework 3.0,改寫Winform時代,可謂是影響巨大!WPF是一套API函式庫,由.Net FrameWork3.0以上版本類庫執行。

WPF是Windows作業系統中一次重大變革,與早期的GDI+/GDI不同。WPF是基於DirectX引擎的,支援GPU硬體加速,在不支援硬體加速時也可以使用軟體繪製。高級別的執行緒繪製可以提高使用者的體驗。自動識別顯示器解析度並進行縮放。而Vista就是一個非常典型的例子。

特點

程式人員與美工人員明確分工,美工人員可以使用Expression Studio中套裝工具視覺化的設計介面。然後交給程式開發組中的XAML就可以。讓程式人員直接套用到開發環境,不需要想頁面怎麼切了。

WPF最重要的特色,向量圖的超強支援 ,相容支援2D繪圖,比如矩形、自定義路徑,點陣圖等。文字顯示的增強,XPS和消鋸齒。三維強大的支援。包括3D控制元件及事件,與2D及視訊合併打造更立 體效果。漸變、使用高精確的(ARGB)顏色,支援浮點型別的畫素座標。這些對GDI+遠遠不及的。
靈活、易擴充套件的動畫機制!.Net Framework 3.0類庫提供了強大的基類,只需繼承就可以實現自定義程式使用繪製。介面設計非常直觀,完全面向物件的物件模型。使用物件描述語言XAML。使用開發工具的視覺化編輯。

您可以使用任何一種.Net程式語言(C#,VB NET等開發語言)進行開發。XAML主要針對介面的視覺化控制元件描述,成生進會分析成.cs或.vb檔案,並最後將編譯為CLR中間執行語言。

組成結構

Windows Presentation Foundation 由兩個主要部分組成:引擎和程式設計框架。

  • Windows Presentation Foundation引擎

Windows Presentation Foundation 引擎統一了開發人員和設計人員體驗文件、媒體和 UI 的方式,為基於瀏覽器的體驗、基於窗體的應用程式、圖形、視訊、音訊和文件提供了一個單一的執行時庫。Windows Presentation Foundation 使得應用程式不僅能夠充分利用現代計算機中現有的圖形硬體的全部功能,而且能夠利用硬體將來的進步。例如,Windows Presentation Foundation 的基於向量的呈現引擎使應用程式可以靈活地利用高DPI監視器,而無需開發人員或使用者進行額外的工作。同樣,當Windows Presentation Foundation 檢測到支援硬體加速的視訊卡時,它將利用硬體加速功能。

  • Windows Presentation Foundation 框架

Windows Presentation Foundation 框架為媒體、使用者介面設計和文件提供的解決方案遠遠超過開發人員現在所擁有的。Windows Presentation Foundation 的設計考慮了可擴充套件性,使開發人員可以完全在 Windows Presentation Foundation引擎的基礎上建立自己的控制元件,也可以通過對現有 Windows Presentation Foundation 控制元件進行再分類來建立自己的控制元件。Windows Presentation Foundation 框架的核心是用於形狀、文件、影象、視訊、動畫、三維以及用於放置控制元件和內容的面板的一系列控制元件。這些“自有控制元件”為開發下一代使用者體驗提供了構造塊。Microsoft 在引入 Windows Presentation Foundation 的同時,還引入了 XAML,這是一種公開表示Windows應用程式使用者介面的標記語言,可使開發人員和設計人員用來構建和重用 UI 的工具更加豐富。對於 Web 開發人員,XAML 提供了熟悉的 UI 說明模式。XAML 還使 UI 設計從基礎程式碼中分離出來,從而使開發人員和設計人員之間的合作更加緊密。

選擇理由

為什麼選擇 Windows Presentation Foundation?

  • 對於企業:

Windows Presentation Foundation 實現了改進的客戶關係和不同的應用程式。通過提供能夠快速提供更好的視覺效果、獨特的使用者體驗的技術,來建立與客戶的密切關係,使企業可以建立穩定的數字客戶關係和獨特的品牌化機會。而且,由於 Windows Presentation Foundation 是窗體、文件、視訊、三維以及其他功能的綜合,因此企業可以建立持久的使用者體驗解決方案,並整合到客戶的日常活動中。

  • 對於開發人員和設計人員:

Windows Presentation Foundation 提供了統一的 UI 平臺,因此他們只需學習一個模式,就可以獲得無限可能的 UI 體驗。

  • 對於.NET開發人員:

其框架是熟悉的,並且它最終將減少提供最佳使用者體驗和通訊邏輯所需的程式碼行數。

  • 對於設計人員:

Windows Presentation Foundation 提供的平臺可消除內容、媒體和應用程式之間的邊界。最重要的是,Windows Presentation Foundation 可以使開發人員和設計人員同步緊密地合作來快速提供不同的連通體驗。

相關推薦

WPF基礎入門系列() WPF簡介

WPF零基礎入門系列(一) WPF簡介 WPF(Windows Presentation Foundation)是微軟推出的基於Windows 的使用者介面框架,屬於.NET Framework 3.0的一部分。它提供了統一的程式設計模型、語言和框架,真正

【JAVA基礎入門系列】Day1 開發環境搭建

oracle 零基礎 ati 成功 官方 運行 根目錄 文件目錄 sys 一、安裝JDK java的sdk簡稱JDK ,去其官方網站下載最近的JDK即可。 http://www.oracle.com/technetwork/java/javase/downloads/jdk

【JAVA基礎入門系列】Day2 Java集成開發環境IDEA

log rgs string 文件夾 ges jetbrains 技術 http clip 開發環境搭建好之後,還需要一個集成開發環境也就是IDE來進行編程。這裏推薦的IDE是IDEA,那個老掉牙的Eclipse還是先放一邊吧,(手動滑稽)。 IDEA的下載地址:http:

【JAVA基礎入門系列】Day3 Java基本數據類型

大小 服務器開發 技術 容易 需求 .html 內存空間 安全性能 com   前兩篇已經將開發環境搭建完成,如果你已經按之前的教程按部就班的完成了部署,那麽世界上最優秀的編程語言之一和世界上最優秀的IDE之一已經出現在你的電腦上(此處應有掌聲),如果你還沒入門,或者正在臺

【JAVA基礎入門系列】Day4 變量與常量

聲明變量 初學 不同 常量 此外 程序員 限制 如果 可維護   這一篇主要講解Java中的變量,什麽是變量,變量的作用以及如何聲明,使用變量。   那麽什麽是變量?對於初學者而言,可以將變量理解為盒子,這些盒子可以用來存放數據,不同類型的數據需要放在對應類型的盒子裏。那麽

【JAVA基礎入門系列】Day12 Java類的簡單應用

object dsa tle 多行註釋 兩個 內容 ice public 所有   俗話說的好,實踐出真知,所以除了理論知識掌握紮實以外,更重要的是要多加操練,這樣才能掌握核心科技。   今天我們就用剛學會的類來實踐一下,目標便是完成上一篇中的剁手任務。   我們的商品類已

【JAVA基礎入門系列】Day13 Java類的繼承與多態

總經理 system 變量賦值 電腦 pub 封裝 java類的繼承 onu def   繼承是類的一個很重要的特性,什麽?你連繼承都不知道?你是想氣死爸爸好繼承爸爸的遺產嗎?(滑稽)   開個玩笑,這裏的繼承跟我們現實生活的中繼承還是有很大區別的,一個類可以繼承另一個類,

【JAVA基礎入門系列】Day14 Java對象的克隆

err 所有 引用類型 也會 cnblogs after 還需要 sys 聲明   今天要介紹一個概念,對象的克隆。本篇有一定難度,請先做好心理準備。看不懂的話可以多看兩遍,還是不懂的話,可以在下方留言,我會看情況進行修改和補充。   克隆,自然就是將對象重新復制一份,那為

【JAVA基礎入門系列】Day15 對象的比較

nbsp override 法則 屬於 問題 設置 equal 以及 his   最近一直有事,博客也停筆了一段時間,十分抱歉。   這一篇主要講講對象的比較,什麽是對象的比較,我們知道兩個數值類型只需要用“==”符號即可進行相等判斷,但如果是兩個Goods對象呢?如何進行

TensorFlow基礎入門教程()

TensorFlow入門(一) 1.計算圖 首先解釋什麼是計算圖,瞭解TensorFlow的計算模型. 和我們常見的程式計算框架不同,並不是賦值,或者計算後,TensorFlow立馬完成這些操作,而是將這些操作,賦予在一個圖中,這個圖可以簡單地

Apache Flink 基礎入門):基礎概念解析

Apache Flink 的定義、架構及原理     Apache Flink 是一個

基礎入門學習Python》(10)--列表:一個打了激素的陣列(

  前言 有時候我們需要把一些東西暫時儲存起來,因為他們有著一些直接或間接的聯絡,我們需要把它們放在某個組或者集合中,未來可能用得上。 很多接觸過程式設計的朋友都知道,都接觸過陣列這個概念,那麼陣列這個概念事實上很簡單,把一大堆同總型別資料挨個擺在一塊,然後通過陣列的下標進行索

Excel基礎入門——01Excel的安裝與簡介

Excel零基礎系入門列教程是絕對的零基礎,讓大家從零開始對Excle有個基礎且相對全面的認識,並熟悉基本操作,能夠勝任基本Excel工作,為Excel專業擴充套件做好準備。 如有問題或建議可以直接留言,一定積極回覆和採納建議!   本篇文章是從零開始認識Excel,1-4節是理論知識,第5小

【轉載】《基礎入門深度學習》系列文章(教程+程式碼)

轉自:https://blog.csdn.net/TS1130/article/details/53244576 無論即將到來的是大資料時代還是人工智慧時代,亦或是傳統行業使用人工智慧在雲上處理大資料的時代,作為一個有理想有追求的程式設計師,不懂深度學習(Deep Learning)這個超熱的技

Python爬蟲開發():基礎入門

0×00 介紹 本人對於Python學習建立了一個小小的學習圈子,為各位提供了一個平臺,大家一起來討論學習Python。歡迎各位到來Python學習群:960410445一起討論視訊分享學習。Python是未來的發展方向,正在挑戰我們的分析能力及對世界的認知方式,因此,我們與時俱進,迎接變化,並

基礎入門學習Python》第057講:論隻爬蟲的自我修養5:正則表示式

如果你在課後有勤加練習,那麼你對於字串的查詢應該是已經深惡痛絕了,你發現下載一個網頁是很容易的,但是要在網頁中查詢到你需要的內容,那就是困難的,你發現字串查詢並沒有你想象的那麼簡單,並不是說直接使用 find 方法找到匹配字串的位置就可以了。 我們來舉個例子,學習了前面幾節課你應該已經嘗試過

基礎入門學習Python》第056講:論隻爬蟲的自我修養4:網路爬圖

今天我們結合前面學習的知識,進行一個例項,從網路上下載圖片,話說我們平時閒來無事會上煎蛋網看看新鮮事,那麼,熟悉煎蛋網的朋友一定知道,這裡有一個 隨手拍 的欄目,我們今天就來寫一個爬蟲,自動抓取每天更新的 隨手拍。 要寫爬蟲,首先要做的第一件事就是踩點,主動發現網頁之間的規律,還有圖片

基礎入門學習Python》第055講:論隻爬蟲的自我修養3:隱藏

目錄 0. 請寫下這一節課你學習到的內容:格式不限,回憶並複述是加強記憶的好方式! 測試題 0. 伺服器是如何識訪問來自瀏覽器還是非瀏覽器的? 1. 明明程式碼跟視訊中的栗子一樣,一執行卻出錯了,但在不修改程式碼的情況下再次嘗試執行卻又變好了,這是為什麼呢? 2. Reque

基礎入門學習Python》第054講:論隻爬蟲的自我修養2:實戰

目錄 0. 請寫下這一節課你學習到的內容:格式不限,回憶並複述是加強記憶的好方式! 測試題 0. urlopen() 方法的 timeout 引數用於設定什麼? 1. 如何從 urlopen() 返回的物件中獲取 HTTP 狀態碼? 2. 在客戶端和伺服器之間進行請求-響應時

基礎入門學習Python》第053講:論隻爬蟲的自我修養

目錄 0. 請寫下這一節課你學習到的內容:格式不限,回憶並複述是加強記憶的好方式! 測試題 0. 請問 URL 是“統一資源識別符號”還是“統一資源定位符”? 1. 什麼是爬蟲? 2. 設想一下,如果你是負責開發百度蜘蛛的攻城獅,你在設計爬蟲時應該特別注意什麼問題? 3.