原創|其它|編輯:郝浩|2009-04-27 09:42:02.000|閱讀 573 次
概述:可以按兩種不同的方式來看待 FrameworkElement。它對在 WPF 的較低層中的子系統引入一組策略和自定義項。它還引入了一組新的子系統。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
System.Windows.FrameworkElement
可以按兩種不同的方式來看待 FrameworkElement。它對在 WPF 的較低層中的子系統引入一組策略和自定義項。它還引入了一組新的子系統。
FrameworkElement 引入的主要策略是關于應用程序布局。FrameworkElement 在 UIElement 引入的基本布局協定之上生成,并增加了布局“插槽”的概念,使布局制作者可以方便地擁有一組面向屬性的一致的布局語義。 HorizontalAlignment、VerticalAlignment、MinWidth 和 Margin 等屬性使得從 FrameworkElement 派生的所有組件在布局容器內具有一致的行為。
利用 FrameworkElement,WPF 的核心層中具有的許多功能可以更方便地進行 API 公開。例如,FrameworkElement 通過 BeginStoryboard 方法提供對動畫的直接訪問。Storyboard 提供一種針對一組屬性為多個動畫編寫腳本的方式。
FrameworkElement 引入的兩個最關鍵的內容是數據綁定和樣式。
曾經使用 Windows 窗體或 ASP.NET 創建應用程序用戶界面 (UI) 的用戶應當對 WPF 中的數據綁定子系統較為熟悉。在上述每個系統中,可通過一種簡單的方式來表達您希望將給定元素中的一個或多個屬性綁定到一個數據片斷。WPF 對屬性綁定、變換和列表綁定提供全面支持。
WPF 中數據綁定的最值得關注的功能之一是引入了數據模板。利用數據模板,您可以聲明性地指定某個數據片斷的可視化方式。您可以將問題換個方向,讓數據來確定將要創建的顯示內容,而無需創建可綁定到數據的自定義用戶界面。
樣式實際上是輕量級的數據綁定。使用樣式,您可以將共享定義的一組屬性綁定到元素的一個或多個實例。通過顯式引用(通過設置 Style 屬性)或通過將樣式與元素的 CLR 類型隱式關聯,便可以將樣式應用到元素。
System.Windows.Controls.Control
控件的最重要的功能是模板化。如果您將 WPF 的組合系統視為一個保留模式呈現系統,則控件可通過模板化以一種參數化的聲明性方式描述其呈現。ControlTemplate 實際上不過是一個用于創建一組子元素的腳本,同時綁定到由控件提供的屬性。
Control 提供一組常用屬性,如 Foreground、Background、Padding 等,模板創作者可以使用這些常用屬性來自定義控件的顯示。控件的實現提供了數據模型和交互模型。交互模型定義了一組命令(如窗口的“關閉”),以及到輸入 筆勢的綁定(如單擊窗口上角的紅叉)。數據模型提供了一組屬性,用于自定義交互模型或自定義顯示(由模板確定)。
數據模型(屬性)、交互模型(命令和事件)及顯示模型(模板)之間的劃分,使用戶可以對控件的外觀和行為進行完全自定義。
最常見的控件數據模型是內容模型。如果查看 Button 之類的控件,您會看到它具有一個類型為 Object 的名為“Content”的屬性。在 Windows 窗體和 ASP.NET 中,此屬性通常為一個字符串 – 不過,這會限制您可以在按鈕中輸入的內容類型。按鈕的內容可以是簡單的字符串、復雜的數據對象或整個元素樹。如果是數據對象,可以使用數據模板構造顯示內 容。
摘要
WPF 旨在幫助您創建動態的數據驅動的演示系統。系統的每一部分均可通過驅動行為的屬性集來創建對象。數據綁定是系統的基礎部分,在每一層中均進行了集成。
傳統的應用程序創建一個顯示內容,然后綁定到某些數據。在 WPF 中,關于控件的所有內容、顯示內容的所有方面都是由某種類型的數據綁定生成的。通過在按鈕內部創建復合控件并將其顯示綁定到按鈕的內容屬性,就會顯示按鈕內的文本。
當開始開發基于 WPF 的應用程序時,您應對其感到非常熟悉。在其中設置屬性、使用對象和數據綁定的方式與您使用 Windows 窗體或 ASP.NET 是極其相似的。如果對 WPF 體系結構有更深的了解,您就能夠創建更豐富的應用程序,這些應用程序在根本上會將數據視為應用程序的核心驅動力。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:自互聯網