色yeye在线视频观看_亚洲人亚洲精品成人网站_一级毛片免费播放_91精品一区二区中文字幕_一区二区三区日本视频_成人性生交大免费看

當(dāng)前位置:首頁 > 嵌入式培訓(xùn) > 嵌入式學(xué)習(xí) > 講師博文 > WindowsPhone自定義控件詳解(一) - 控件類庫分析

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

為了讓你的應(yīng)用程序更有個性,我們通常會在WP7開發(fā)過程中會自定義自己風(fēng)格的控件,自定義控件中設(shè)置各種模板,綁定數(shù)據(jù),修改控件行為,但是對于很多朋友來說,這么做是為什么? 不是很清楚,看MSDN的話,又一時找不到頭緒,本文就是從控件類庫的繼承關(guān)系里來剖析出自定義控件中的為什么?如果你覺得本文觀點(diǎn)獨(dú)特,對你有很大幫助,請頂之,謝謝。

一、 控件分類

讓我們先從我們熟悉的控件分類開始,因?yàn)檫@樣理解更直觀。

WP7里基本控件可以分為以下四類:

1.文本控件:主要用于顯示和輸入文本

2.內(nèi)容控件:主要用于包含一個子控件元素UIElement(UIElement是所有可視UI控件的基類,我叫它第三代控件祖宗)

3.項(xiàng)集合控件:從名字可以知道,它是包含有多個子項(xiàng)的控件,如ListBox

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

如下表所示,常用基本控件。

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

二、主要控件基類

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

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

主要屬性:

? Control.Template 屬性:

通過將ControlTemplate應(yīng)用給Control.Template 屬性來定義其外觀。所有繼承自Control類的子類,都繼承Template屬性,也就意味著,你可以通過自定義ControlTemplate來實(shí)現(xiàn)Control子控件的自定義。 注意:它有一個子類UserControl,用于快速創(chuàng)建控件,不過,你不能自定義ControlTemplate,并將它應(yīng)用于UserControl。

主要事件:

? GotFocus,LostFocus 
當(dāng)控件獲得或失去焦點(diǎn)時回調(diào)

MouseLeftButtonUp ,MouseMove ,MouseLeftButtonDown
當(dāng)控件被點(diǎn)擊,移動時分別回調(diào)

ManipulationStarted ,ManipulationDelta, ManipulationCompleted
當(dāng)用戶對控件開始進(jìn)行操作時回調(diào)ManipulationStarted,當(dāng)用戶對控件操作并更改位置時回調(diào)ManipulationDelta,當(dāng)用戶對控件停止操作時,回調(diào)ManipulationCompleted。

SizeChanged

當(dāng)代表控件大小的ActualHeight 或 ActualWidth屬性改變時回調(diào)

2. ContentControl:是其他內(nèi)容控件的基類,表示包含單項(xiàng)元素的內(nèi)容控件。像 Button、CheckBox 和 ScrollViewer 這樣的控件直接或間接繼承自該類。

主要屬性:

? ContentControl. Content 屬性:

ContentControl.Content 屬性可以是任何類型的對象,例如字符串、UIElement 或 DateTime。當(dāng)ContentControl.Content 設(shè)置為 UIElement 時,ContentControl 中將顯示 UIElement。當(dāng)ContentControl.Content 設(shè)置為其他類型的對象時,ContentControl 中將顯示該對象的字符串表示形式。

注意:ContentControl 具有有限的默認(rèn)樣式。如果要增強(qiáng)該控件的外觀,可以創(chuàng)建新的 DataTemplate類型屬性用于自定義。

ContentControl. ContentTemplate屬性:

它是一個DataTemplate對象元素,定義該ContentControl的內(nèi)容顯示外觀。

3. ItemsControl:是項(xiàng)集合類的基類。

主要屬性:

? Items屬性:

如果要顯示固定列表,則應(yīng)當(dāng)用一個或多個 FrameworkElement 子對象填充ItemsControl .Items屬性,并且不要指定ItemsSource。

? ItemsSource屬性:

如果要顯示對象數(shù)據(jù)源中的數(shù)據(jù),則應(yīng)將ItemsSource指定為對某個對象的引用。 通常,這可通過 Binding 聲明來實(shí)現(xiàn),

? ItemsPanel屬性:

設(shè)置該屬性來自定義項(xiàng)集合控件的布局方式,是一個ItemsPanelTemplate類型元素。

? ItemTemplate屬性:

設(shè)置該屬性來指定項(xiàng)集合控件中,每一個Item項(xiàng)的數(shù)據(jù)顯示外觀,是一個DataTemplate類型元素。

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

自定義布局行為可以通過以下方式來實(shí)現(xiàn):從 Panel 繼承并使用 MeasureOverride 和 ArrangeOverride 方法重寫默認(rèn)度量和排列行為。

上面解釋的基類中的主要屬性和方法是我們在自定義控件時去修改的東西,通過中間的繼承關(guān)系圖可以看得出,Panel類與Control類沒有任何繼承關(guān)系,這也就從祖宗這輩上決定了其孩子的特性不一樣,所以在對兩個大分支類進(jìn)行自定義時不一樣,Panel類主要是包含其它控件的容器控件,對容器控件的主要自定義就是設(shè)置不同的被包含控件之間的布局,因此重載其兩個測量方法。而Contorl類是用戶交互類,有外觀,有交互操作,對其子類主要是自定義其外觀和操作,也就是說,通過設(shè)置其Template屬性和重載具體的事件來達(dá)到目的。

? ContentControl類是Control類的子類,它有Control的特點(diǎn),不過,它是內(nèi)容控件,主要用來包含一個UIElement。

? 既然包含一個UIElement,就要設(shè)置這個UIElement的內(nèi)容,即:Content屬性。

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

? ItemsControl類是Control類的子類,同樣繼承了該繼承的東西,它是個項(xiàng)集合類,可以包含多個子項(xiàng)Item。

? 它有Items屬性和ItemsSource讓用戶來指定包含哪些子項(xiàng)。

? 各子項(xiàng)之間要怎樣布局,就有了ItemtPanel屬性用來讓用戶指定。

? 每一個子項(xiàng)是一個內(nèi)容控件,它具有ContentControl的特點(diǎn),因此還要通過ItemTempalte屬性指定每一個項(xiàng)的外觀。

上一篇:進(jìn)程與線程的空間問題

下一篇:字符設(shè)備驅(qū)動框架搭建流程

熱點(diǎn)文章推薦
華清學(xué)員就業(yè)榜單
高薪學(xué)員經(jīng)驗(yàn)分享
熱點(diǎn)新聞推薦
前臺專線:010-82525158 企業(yè)培訓(xùn)洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠(yuǎn)見科技集團(tuán)有限公司 版權(quán)所有 ,京ICP備16055225號-5京公海網(wǎng)安備11010802025203號

回到頂部

主站蜘蛛池模板: 99色热| 国产精品亚洲片在线观看不卡 | 亚洲精品中文字幕乱码4区 爆乳大森しずか无码 | 亚洲高清无吗 | 日本添下边视频全过程 | 极品少妇小泬50PTHEPON | 福利视频一 | 欧美性高清bbbbbbxxxxx | 男人和女人做爽爽视频免费 | 99精品国产一区二区三区A片 | 久久久wwww | 国产AⅤ爽AV久久久久玉浦团 | 午夜福利精品导航凹凸 | 日本少妇高潮正在线播放 | 亚洲精品一区二区三区在线 | 中国一级黄色毛片 | 亚洲美女一区二区三区 | 欧美成人永久免费a片 | 成人无码精品免费视频在线观看 | 无码人妻精品中文字幕免费 | 无码熟熟妇丰满人妻啪啪软件 | 自拍偷自拍亚洲精品牛影院 | 亚洲国产成人精品无码区在线网站 | 免费人成视频在线不卡 | 狠久久 | 丁香五月亚洲综合在线 | 免费SM羞辱调教视频在线观看 | 婷婷网亚洲色偷偷男人的天堂 | chinese情侣自拍啪hd | 下属新婚人妻紧窄 | 四川少妇BBBB槡BBBB槡 | 青青草在线视频网站 | 粗大猛烈进出高潮视频 | 国产熟妇与子伦hd | A片在线免费观看 | 国产小视频在线观看网站 | 国产专区免费av无码 | 荫蒂每天被三个男人添视频 | 亚洲亚洲人成综合丝袜图片 | 无码专区中文字幕无码 | 国产普通话刺激视频在线播放 |