自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

WPF元素樹各種用途解析

開發(fā) 開發(fā)工具
WPF元素樹包括邏輯樹;可視化樹等等。我們就針對(duì)這一相關(guān)概念在這篇文章中為大家詳細(xì)介紹。希望對(duì)又需要的朋友有所幫助。

WPF元素樹是WPF中一個(gè)非常重要的結(jié)構(gòu)。在初學(xué)者學(xué)習(xí)使用WPF的時(shí)候,需要深入的了解這一結(jié)果,才能方便以后的熟練操作。#t#

如果使用 XAML 創(chuàng)建應(yīng)用程序頁(yè),則將基于標(biāo)記中元素的嵌套關(guān)系創(chuàng)建樹結(jié)構(gòu)。
如果使用代碼創(chuàng)建應(yīng)用程序,則將基于為屬性(實(shí)現(xiàn)給定元素的內(nèi)容模型)指定屬性值的方式創(chuàng)建樹結(jié)構(gòu)。
在 Windows Presentation Foundation (WPF) 中,處理和使用概念說明元素樹的方法實(shí)際上有兩種:即邏輯樹和可視化樹。

WPF元素樹之邏輯樹用途

邏輯樹的存在用途是使內(nèi)容模型可以容易地循環(huán)訪問其可能包含的子元素,從而可以對(duì)內(nèi)容模型進(jìn)行擴(kuò)展。此外,邏輯樹還為某些通知提供了框架,例如當(dāng)加載邏輯樹中的所有元素時(shí)。

此外,在 Resources 集合的邏輯樹中首先向上查找初始請(qǐng)求元素,然后再查找父元素,這樣可以解析資源引用。當(dāng)同時(shí)存在邏輯樹和可視化樹時(shí),將使用邏輯樹進(jìn)行資源查找。

WPF元素樹之可視化樹

WPF 中除了邏輯樹的概念,還存在可視化樹的概念??梢暬瘶涿枋鲇?Visual 基類表示的可視化對(duì)象的結(jié)構(gòu)。為控件編寫模板時(shí),將定義或重新定義適用于該控件的可視化樹。對(duì)于出于性能和優(yōu)化原因想要對(duì)繪圖進(jìn)行較低級(jí)別控制的開發(fā)人員來說,他們也會(huì)對(duì)可視化樹感興趣。作為常規(guī) WPF 應(yīng)用程序編程一部分的可視化樹的一個(gè)公開情況是,路由事件的事件路由大多數(shù)情況下遍歷可視化樹,而不是邏輯樹。這種微妙的路由事件行為可能不會(huì)很明顯,除非您是控件作者。在可視化樹中路由使得在可視化級(jí)別實(shí)現(xiàn)組合的控件能夠處理事件或創(chuàng)建事件 setter。

WPF元素樹之樹遍歷

LogicalTreeHelper 類為邏輯樹遍歷提供 GetChildren、GetParent 和 FindLogicalNode 方法。在大多數(shù)情況下,不需要遍歷現(xiàn)有控件的邏輯樹,因?yàn)檫@些控件幾乎總是將其邏輯子元素公開為專用集合屬性,該屬性支持集合 API(如 Add、索引器等等)。對(duì)于不選擇從預(yù)期控件模式(例如已定義了集合屬性的 ItemsControl 或 Panel)派生以及打算提供其自己的集合屬性支持的控件作者,樹遍歷主要是他們使用的一種方案。

可視化樹還支持用于可視化樹遍歷的幫助器類 VisualTreeHelper。無(wú)法通過控件特定的屬性方便地公開可視化樹,因此,如果您的編程方案必須遍歷可視化樹,建議您使用 VisualTreeHelper 類。

WPF元素樹之“樹”形式路由事件的路由

如前所述,路由事件的路由可有效地向上遍歷或向下遍歷樹,這要取決于該事件是隧道路由事件還是冒泡路由事件。事件路由概念沒有直接支持的幫助器類,因此無(wú)法使用這樣的類來獨(dú)立“遍歷”引發(fā)實(shí)際進(jìn)行路由的事件的事件路由。存在表示路由的類 EventRoute,但該類的方法通常僅供內(nèi)部使用。

WPF元素樹之資源和樹

資源查找基本上遍歷邏輯樹。不在邏輯樹中的對(duì)象可以引用資源,但查找將從該對(duì)象連接到邏輯樹的位置開始。僅邏輯樹節(jié)點(diǎn)可以有包含 ResourceDictionary 的 Resources 屬性,因此這意味著,遍歷可視化樹來查找資源沒有好處。

但是,資源查找也可以超出直接邏輯樹。對(duì)于應(yīng)用程序標(biāo)記,資源查找可以向上繼續(xù),直到應(yīng)用程序資源以及主題支持和系統(tǒng)值。如果資源引用是動(dòng)態(tài)的,則主題本身也可以引用主題WPF元素樹之外的系統(tǒng)值。

責(zé)任編輯:曹凱 來源: 博客園
相關(guān)推薦

2009-12-25 16:58:23

WPF名稱范圍

2009-12-25 16:40:49

WPF優(yōu)勢(shì)

2009-12-25 11:04:51

WPF Border

2009-12-23 16:39:55

WPF命令

2009-12-25 10:46:36

WPF Page

2010-07-06 17:41:58

UML時(shí)序圖

2009-12-29 10:22:34

WPF附加屬性

2009-12-25 17:02:33

WPF多媒體

2009-12-28 14:40:08

WPF屬性

2009-12-28 09:13:50

WPF容器控件

2009-12-25 10:28:10

WPF路由事件

2009-12-28 16:28:35

WPF元素類型樣式

2009-12-24 15:36:41

WPF邏輯樹

2009-12-28 15:01:39

WPF樹應(yīng)用

2009-12-23 17:31:56

WPF Style

2009-12-24 14:30:19

WPF MVVM

2020-05-15 14:11:16

樹莓派操作系統(tǒng)Linux

2009-12-29 14:20:27

WPF路徑

2009-12-28 13:57:39

WPF文字

2009-12-24 17:19:13

WPF觸發(fā)器
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)