亚洲精品一二区_国产黄色片网站_99久久久成人国产精品_蜜臀网_国产精品一区二区三区免费_成人av中文字幕_91精品国产欧美一区二区成人

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

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

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

一、 控件分類

讓我們先從我們熟悉的控件分類開始,因為這樣理解更直觀。

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

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

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

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

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

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

控件 控件類型 內容屬性
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

二、主要控件基類

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

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

主要屬性:

? Control.Template 屬性:

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

主要事件:

? GotFocus,LostFocus 
當控件獲得或失去焦點時回調

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

ManipulationStarted ,ManipulationDelta, ManipulationCompleted
當用戶對控件開始進行操作時回調ManipulationStarted,當用戶對控件操作并更改位置時回調ManipulationDelta,當用戶對控件停止操作時,回調ManipulationCompleted。

SizeChanged

當代表控件大小的ActualHeight 或 ActualWidth屬性改變時回調

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

主要屬性:

? ContentControl. Content 屬性:

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

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

ContentControl. ContentTemplate屬性:

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

3. ItemsControl:是項集合類的基類。

主要屬性:

? Items屬性:

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

? ItemsSource屬性:

如果要顯示對象數據源中的數據,則應將ItemsSource指定為對某個對象的引用。 通常,這可通過 Binding 聲明來實現,

? ItemsPanel屬性:

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

? ItemTemplate屬性:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

回到頂部

主站蜘蛛池模板: 九九在线精品视频播放 | 台湾黄三级高清在线观看播放 | 青娱乐免费 | 精品久久久久中文字幕日本 | 99热这里只有精品国产99 | 欧美三级午夜理伦三级小说 | 欧美精品videosfreeo720 | 欧美日韩国产成人综合在线影院 | 欧美视频在线观看一区二区 | 国产精品免费看久久久香蕉 | 欧美在线网站 | 久久这里只有精品9 | 成人午夜影院 | 韩国精品一区二区三区 | 激情五月综合网 | 澳门a毛片免费观看 | 国产一区二区精品久久91 | 99久久99这里只有免费费精品 | 日本一区二区三区在线 视频 | 久久综合桃花网 | 亚洲日本视频在线 | 国产欧美激情一区二区三区 | jizzjizzjizzjizz日本老师 | 国产精品国产亚洲精品不卡 | 久久永久免费 | 激情图片 激情小说 | 色资源在线观看 | 久草资源视频 | 国产成都一二三四区 | 欧美操片 | 人人澡人人澡人人看欧美新闻 | 国产精品夜色视频一区二区 | 老熟女一级毛片 | 日本免费福利视频 | 人人做人人做人人爱 | 青娱乐精品盛宴 | 偷啪自啪| 青娱乐97| 美女被免费网站在线视 | 两个人看的www| 激情图片激情文学 |