WPF 基礎面試題及答案(一)


一 · WPF由哪兩部分組成?

wpf 由兩個主要部分 組成:引擎和編程框架。

1 引擎。wpf引擎是基於窗體的應用程序 圖形 視頻 音頻和文檔提供了一個單一的運行時庫。重要的是WPF基於矢量的呈現引擎使應用程序可以靈活地利用高DPI監視器,支持圖形的硬件加速。

2 框架。WPF框架為媒體 用戶界面設計和文檔提供大量的解決方案。wpf的設計考慮了可擴展性,使開發人員可以完全在WPF引擎的基礎上創建自己的控件,也可以通過對現有WPF控件進行再分類來創建自己的控件。

 

二 · 什么是WPF?

WPF英文全稱是Windows Presentation Foundation,中文為Windows表現層基礎。是微軟最初在.NET Framework3.5平台推出的一個圖形平台。

 

 

三 · Silverlight 和 WPF的異同。

它們的運行方式是不同的。

1 silverlight是基於瀏覽器插件的,在瀏覽器中運行。

2 WPF可以編寫Web程序或者桌面應用程序,可以直接編譯為獨立運行的exe文件。

實現功能是不同的。

 

1 WPF支持直接在XAML中綁定觸發來觸發動畫,而silverlight就只能通過托管代碼或者javascript來進行。

2 WPF直接支持3D效果和3D鏡頭變換,但是silverlight就不支持。

它們也有相似的地方

1 silverlight 原名WPF/E 就是WPF Everywhere 是WPF的一個子集。因此它們在很多語法實現上非常類似。

 

 

 四 ·如何理解WPF體系結構?

WPF使用多層架構,類似於三層結構,最頂層部分為托管代碼API,此層用於為開發人員編寫WPF應用程序提供較高層次的服務,基於C#托管代碼編寫。轉換.NET代碼到DirectX的工作由中間層milcore.dll實現。中間層milcore是用非托管代碼實現,因為它需要與DirectX緊密集成,對性能敏感,就是消耗的資源比較多,對性能影響較大。

五 · 在WPF中Binding的作用及實現語法?

典型的Binding具有四個重要組成部分:Binding目標對象(binding target object) 目標對象屬性(target property) Binding數據源(binding source) Path(用於指明要從數據源中取得的值,就是我們通常寫的屬性名稱)。

六·什么是XML擴展XAML?有何優點?

1 XAML是eXtensible Application Markup  Language的英文縮寫,相應於中文稱為可擴展應用程序標記語言,它是微軟公司為構建應用程序用戶界面而創建的一種新的描述性語言。

2 XAML是XML語言的一個衍生物,它的語法與XML語言完全一致,它的功能就是專門用來設計和實現程序的UI。

3 XAML一個很大的優點就是由於WPF支持WEB開發,那么WEB開發和桌面開發的轉換是很簡單,修改的地方很短,同時UI與邏輯完全分離,所以邏輯代碼也幾乎不用改動。

七· 解釋什么是依賴屬性,它和以前的屬性有什么不同?為什么在WPF會使用它?

1 Windows Presentation Foundation (WPF) 提供了一組服務,這些服務可用於擴展公共語言運行時 (CLR) 屬性的功能,這些服務通常統稱為 WPF 屬性系統。由 WPF 屬性系統支持的屬性稱為依賴項屬性。

2 它和以往屬性的不同之處有

(1)依賴屬性是一種特定類型的屬性。這種屬性的特殊之處在於,其屬性值受到 Windows 運行時中專用屬性系統的跟蹤和影響。

(2)依賴屬性的用途是提供一種系統的方式,用來基於其他輸入(在應用運行時其內部出現的其他屬性、事件和狀態)計算屬性的值。

(3)依賴屬性代表或支持編程模型的某種特定功能,用於定義 Windows 運行時應用,這種模型使用 XAML 編寫 UI,使用 C#、Microsoft Visual Basic 或 Visual C++ 組件擴展 (C++/CX) 編寫代碼。

一般的屬性沒有這么復雜。

3 WPF使用它是有不少優點的

(1)優化了屬性的存儲,直接減少了不必要的內存使用。

(2)有屬性變化通知 限制 驗證等。

(3)可以儲存多個值,配合Expression及Animation等,打造出更靈活的使用方法。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM