久久婷婷香蕉热狠狠综合,精品无码国产自产拍在线观看蜜,寡妇房东在做爰3,中文字幕日本人妻久久久免费,国产成人精品三上悠亚久久

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 講師博文 > WindowsPhone自定義(yi)控(kong)件(jian)詳解(一) - 控(kong)件(jian)類庫分析

WindowsPhone自定義控件(jian)(jian)詳(xiang)解(一) - 控件(jian)(jian)類(lei)庫分(fen)析 時間:2014-11-27      來源:未知

為(wei)了(le)讓你(ni)的(de)應用程(cheng)序更有個性,我們通常會在(zai)WP7開發(fa)過程(cheng)中會自(zi)定義自(zi)己風格(ge)的(de)控件(jian),自(zi)定義控件(jian)中設置(zhi)各種模板,綁(bang)定數據(ju),修改控件(jian)行為(wei),但是(shi)對(dui)于很(hen)(hen)多朋友來(lai)說(shuo),這(zhe)么做(zuo)是(shi)為(wei)什么? 不(bu)是(shi)很(hen)(hen)清楚,看MSDN的(de)話,又一時找(zhao)不(bu)到(dao)頭緒,本文就是(shi)從控件(jian)類庫(ku)的(de)繼承關(guan)系里來(lai)剖析(xi)出(chu)自(zi)定義控件(jian)中的(de)為(wei)什么?如果(guo)你(ni)覺得本文觀點(dian)獨(du)特,對(dui)你(ni)有很(hen)(hen)大幫(bang)助,請頂之,謝(xie)謝(xie)。

一、 控(kong)件分類(lei)

讓(rang)我(wo)們先從我(wo)們熟悉(xi)的控件(jian)分類開始,因為這樣理解更(geng)直觀。

WP7里基(ji)本控件可(ke)以分為以下四類:

1.文(wen)本(ben)控件:主要用于(yu)顯示(shi)和輸(shu)入文(wen)本(ben)

2.內容(rong)控(kong)件(jian):主(zhu)要(yao)用于包含一個(ge)子(zi)控(kong)件(jian)元素UIElement(UIElement是所有(you)可視UI控(kong)件(jian)的(de)基類,我(wo)叫它(ta)第三代(dai)控(kong)件(jian)祖(zu)宗)

3.項(xiang)集合控件(jian):從(cong)名(ming)字可以知(zhi)道,它(ta)是包含(han)有多個子項(xiang)的控件(jian),如ListBox

4.容器控件:它可以包含有多(duo)個子(zi)控件元素(UIElement)

如下表所示,常用(yong)基本控(kong)件(jian)。

控件 控件類型 內容屬性
TextBlock 文本控件 TextBlock.Text
  TextBlock.Inlines
TextBox 文本控件 TextBox.Text
PasswordBox 文本控件 PasswordBox.Password
Button 內容控件 ContentControl.Content
CheckBox 內容控件 ContentControl.Content
RadioButton 內容控件 ContentControl.Content
ListBoxItem 內容控件 ContentControl.Content
ListBox 項集合控件 ItemsControl.Items
  ItemsControl.ItemsSource
Canvas 容器控件 Panel.Children
Grid 容器控件 Panel.Children
StackPanel 容器控件 Panel.Children

二、主(zhu)要控件基(ji)類

System.Windows.Controls命名空間下,包含以下幾個主要的控件基類:
  ? Control
  ? ContentControl
  ? ItemsControl
  ? Panel

1. Control:表示用戶界面控件的(de)基類

主要屬性:

? Control.Template 屬性(xing):

通(tong)過(guo)將ControlTemplate應(ying)用(yong)給Control.Template 屬(shu)性(xing)來定義(yi)(yi)其(qi)外(wai)觀。所有(you)繼承自(zi)(zi)Control類(lei)的(de)子(zi)類(lei),都繼承Template屬(shu)性(xing),也(ye)就意(yi)味著,你(ni)可以通(tong)過(guo)自(zi)(zi)定義(yi)(yi)ControlTemplate來實(shi)現Control子(zi)控件的(de)自(zi)(zi)定義(yi)(yi)。 注意(yi):它有(you)一個子(zi)類(lei)UserControl,用(yong)于(yu)(yu)快速創建控件,不(bu)過(guo),你(ni)不(bu)能(neng)自(zi)(zi)定義(yi)(yi)ControlTemplate,并將它應(ying)用(yong)于(yu)(yu)UserControl。

主要事件:

? GotFocus,LostFocus 
當控件獲得或失去(qu)焦點時(shi)回調(diao)

MouseLeftButtonUp ,MouseMove ,MouseLeftButtonDown
當控件(jian)被點(dian)擊,移動時分別回調

ManipulationStarted ,ManipulationDelta, ManipulationCompleted
當用(yong)戶(hu)(hu)對控(kong)件開始(shi)進(jin)行(xing)操作(zuo)時回(hui)調ManipulationStarted,當用(yong)戶(hu)(hu)對控(kong)件操作(zuo)并(bing)更改(gai)位置時回(hui)調ManipulationDelta,當用(yong)戶(hu)(hu)對控(kong)件停止操作(zuo)時,回(hui)調ManipulationCompleted。

SizeChanged

當代(dai)表控件(jian)大小的ActualHeight 或(huo) ActualWidth屬性(xing)改變時回調

2. ContentControl:是其他內容控(kong)(kong)件的基類(lei),表(biao)示包含單項元素的內容控(kong)(kong)件。像 Button、CheckBox 和 ScrollViewer 這樣的控(kong)(kong)件直(zhi)接或間接繼承自該(gai)類(lei)。

主要屬性(xing):

? ContentControl. Content 屬(shu)性(xing):

ContentControl.Content 屬性(xing)可(ke)以(yi)是任何(he)類型的對象,例如(ru)字符串、UIElement 或 DateTime。當ContentControl.Content 設置為 UIElement 時(shi),ContentControl 中將(jiang)顯示(shi) UIElement。當ContentControl.Content 設置為其他類型的對象時(shi),ContentControl 中將(jiang)顯示(shi)該對象的字符串表示(shi)形(xing)式(shi)。

注意(yi):ContentControl 具有(you)有(you)限的默(mo)認樣式。如果要增強該控件(jian)的外觀,可以創建新的 DataTemplate類型屬性用于自定(ding)義。

ContentControl. ContentTemplate屬性:

它是一(yi)個DataTemplate對(dui)象(xiang)元(yuan)素,定義該ContentControl的(de)內容顯示外觀(guan)。

3. ItemsControl:是(shi)項(xiang)集(ji)合類的(de)基類。

主(zhu)要屬性:

? Items屬性(xing):

如果要(yao)顯示(shi)固(gu)定列表,則應當用一(yi)個或多(duo)個 FrameworkElement 子對象填(tian)充(chong)ItemsControl .Items屬性,并且(qie)不要(yao)指定ItemsSource。

? ItemsSource屬性:

如果要顯示對(dui)象(xiang)(xiang)數(shu)據(ju)源中(zhong)的(de)數(shu)據(ju),則應(ying)將ItemsSource指定(ding)為(wei)對(dui)某個對(dui)象(xiang)(xiang)的(de)引用。 通常,這可通過 Binding 聲明來實現,

? ItemsPanel屬性(xing):

設置該(gai)屬性來自(zi)定義項集(ji)合控件的布局方式,是一個(ge)ItemsPanelTemplate類型元(yuan)素。

? ItemTemplate屬性:

設置該(gai)屬(shu)性來指定項集合控(kong)件中(zhong),每一個Item項的數據顯示(shi)外觀,是(shi)一個DataTemplate類型(xing)元素。

 4. Panel: 是容器控件的基類,比(bi)如:Canvas, Grid, StackPanel。

自定義布局行為可以(yi)(yi)通過以(yi)(yi)下(xia)方式來實現:從(cong) Panel 繼承并使用(yong) MeasureOverride 和(he)(he) ArrangeOverride 方法(fa)重寫默認度(du)量和(he)(he)排列行為。

上面解釋的(de)(de)(de)基類(lei)中(zhong)的(de)(de)(de)主(zhu)要(yao)屬(shu)性(xing)(xing)和(he)(he)方法是我們在(zai)自(zi)定(ding)義控(kong)(kong)件時(shi)去修改的(de)(de)(de)東西,通(tong)過(guo)中(zhong)間的(de)(de)(de)繼(ji)(ji)承(cheng)關系圖可以(yi)看得(de)出(chu),Panel類(lei)與Control類(lei)沒有任何繼(ji)(ji)承(cheng)關系,這也就從(cong)祖宗這輩上決定(ding)了(le)其(qi)孩子(zi)的(de)(de)(de)特性(xing)(xing)不一樣,所以(yi)在(zai)對兩(liang)個大分支類(lei)進行自(zi)定(ding)義時(shi)不一樣,Panel類(lei)主(zhu)要(yao)是包(bao)含其(qi)它控(kong)(kong)件的(de)(de)(de)容器控(kong)(kong)件,對容器控(kong)(kong)件的(de)(de)(de)主(zhu)要(yao)自(zi)定(ding)義就是設置不同的(de)(de)(de)被包(bao)含控(kong)(kong)件之間的(de)(de)(de)布局(ju),因(yin)此重載其(qi)兩(liang)個測量方法。而Contorl類(lei)是用戶交互類(lei),有外(wai)觀,有交互操作,對其(qi)子(zi)類(lei)主(zhu)要(yao)是自(zi)定(ding)義其(qi)外(wai)觀和(he)(he)操作,也就是說,通(tong)過(guo)設置其(qi)Template屬(shu)性(xing)(xing)和(he)(he)重載具體的(de)(de)(de)事件來(lai)達到目的(de)(de)(de)。

? ContentControl類是(shi)Control類的子(zi)類,它有Control的特(te)點,不(bu)過,它是(shi)內容控件,主要用(yong)來包(bao)含一個UIElement。

? 既然包含一個UIElement,就要設置這個UIElement的(de)內(nei)容,即:Content屬(shu)性。

? 通過ContentTempalte來定義這個被包含的(de)(de)UIElement的(de)(de)外(wai)觀(guan)(guan),因此,如果要自定義外(wai)觀(guan)(guan)那就是重新創建新的(de)(de)DataTempalte,應用到ContentTempalte屬性嘍。

? ItemsControl類(lei)是Control類(lei)的(de)(de)子(zi)類(lei),同樣(yang)繼承(cheng)了該繼承(cheng)的(de)(de)東(dong)西,它(ta)是個項集合(he)類(lei),可以包(bao)含多個子(zi)項Item。

 ? 它有Items屬(shu)性和ItemsSource讓用戶(hu)來指定(ding)包含哪些子項。

 ? 各子項之間要(yao)怎(zen)樣(yang)布局(ju),就有了ItemtPanel屬性用來(lai)讓用戶(hu)指(zhi)定(ding)。

? 每一個子項是一個內容控(kong)件,它具有ContentControl的特點,因此(ci)還要(yao)通過(guo)ItemTempalte屬性指定每一個項的外觀(guan)。

上一篇:進程與線程的空間問題

下一篇:字符設備驅動框架搭建流程

熱(re)點文章(zhang)推薦
華(hua)清學員就業榜單
高薪學員(yuan)經(jing)驗分享(xiang)
熱(re)點新(xin)聞(wen)推薦
前臺專線:010-82525158 企業培訓洽(qia)談專線(xian):010-82525379 院校合作洽談(tan)專線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,,京公海網安備11010802025203號

回到頂部