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