天天看點

控件篇

原文: 控件篇 日常使用最多的控件有6類:

1. 布局控件:可以容納多個控件或嵌套其他布局控件,例如Grid、StackPanel、DockPanel等,有共同的父類Panel

2. 内容控件:隻能容納一個其他控件或布局控件作為它的内容,例如Window、Button等,有共同的父類ContentControl

3. 帶标題内容控件:相當于一個内容控件,但是可以加一個标題,例如GroupBox、TabItem等,有共同的父類HeaderedContentControl

4.條目控件:可以顯示一列資料,例如ListBox、ComboBox有共同的父類ItemsControl

5.帶标題條目控件:相當于條目控件加一個标題,例如TreeViewItem、MenuItem,有共同的父類HeaderedItemsControl

6.特殊内容控件:相對比較獨立,功能不同,例如TextBox、TextBlock、Image

控件的内容可以是資料,也可以是其他控件,如果不考慮控件内部的組成結構,隻觀察由控件組成的樹,那麼這棵樹就成為邏輯樹,如果連控件本身的樹也考慮在内,那這棵樹就是可視元素樹

名稱 注釋
ContentControl 單一内容控件
HeaderedContentControl 帶标題的單一内容控件
ItemsControl 以條目集合為内容的控件
HeaderedItemsControl 帶标題的以條目集合為内容的控件
Decorator 控件裝飾元素
Panel 面闆類元素
Adorner 文字點綴元素
Flow Text 流式文本元素
TextBox 文本輸入框
TextBlock 靜态文字
Shape 圖形元素

各類内容模型詳解

1.ContentControl
本族元素特點如下:

1)均派生于ContentControl類

2)都是控件

3)内容屬性名稱為Content

4)隻能由單一進制素填充

Button ButtonBase CheckBox ComboBoxItem
Frame GridViewColumnHeader GroupItem
Label ListBoxItem ListViewItem NavigationWindow
RadioButton RepeatButton ScrollViewer StatusBarItem
ToggleButton ToolTip UserControl Window
2.HeaderedContentControl

1)均派生于HeaderedContentControl類,HeaderedContentControl是ContentControl的派生類

3)除了顯示主體内容外,還具有一個顯示标題的區域

4)内容屬性為Content和Header

5)Content和Header都隻能容納一個元素

Expander GroupBox TabItem
3.ItemsControl

1)均派生于ItemsControl類

3)内容屬性為Items或ItemsSource

4)每個ItemsControl都對應有自己的條目容器

Menu MenuBase ContextMenu ComboBox
ListBox ListView TabControl
TreeView Selector StatusBar
4.HeaderedItemsControl

1)均派生于HeaderedItemsControl類

3)内容屬性為Items、ItemsSource、Header

MenuItem TreeViewItem ToolBar
5.Decorator

1)均派生于Decorator類

2)起UI裝飾作用

3)内容屬性為Child

4)隻能由單一進制素充當内容

ButtonChrome ClassicBorderDecorator ListBoxChrome SystemDropShadowChrome
Border InkPresenter BulletDecorator ViewBox
AdornerDecorator
6.TextBlock和TextBox
TextBlock隻能顯示文本,不能編輯,是以又稱靜态文本,TextBox允許使用者編輯,TextBlock雖然不能編輯,但可以使用豐富的印刷級格式控制标記顯示專業的排版效果,TextBox的内容屬性是Text,TextBlock的内容屬性是Inlines,也保留了一個Text的内容屬性,用于顯示簡單的字元串
7.Shape

1)均派生于Shape類

2)用于繪制2D圖形

3)無内容屬性

4)使用Fill屬性填充,使用Stroke屬性設定邊線

8.Panel

1)均派生于Panel類

2)用于控制UI布局

3)内容屬性為Children

4)内容可以是多個元素

Canvas DockPanel Grid TabPanel
ToolBarOverflowPanel StackPanel ToolBarPanel UniformGrid
VirtualizingPanel VirtualizingStackPanel WrapPanel

繼續閱讀