【转】WPF从我炫系列3---内容控件的用法
今天我來給大家講解WPF中內容控件的用法,在WPF中的內容控件,通俗的講,是指具有Content屬性的控件,在content屬性里面可以嵌套放置任意其他類型的控件,但是Content只能接受單個元素,可以通過布局控件來組合放置多個元素。它繼承System.Windows.Controls.ContentControl這個類。
WPF中的內容控件大致可以分為4類:
1.???????直接派生自ContentControl控件
在WPF控件庫中,大多數控件都是這種類型的控件.,例如BUTTON,按鈕,列表框控件,LABEL控件。關于這中類型的控件,在后面我們會單獨挑出一節課來講,在這一章我們就不在仔細闡釋。
2.派生自HeaderContentControl的控件
這中類型的控件一般都包括一個標頭和一個內容項。在WPF中這種類型的控件般包括Expander,GroupBox,TabItem這三種類型的控件.
下面我們來一一演示這三種控件的用法
Expander帶標題的可折疊控件.
這種控件類似于WINFOWS XP中,打開我的電腦,窗體左側中的可折疊面板控件。
效果圖
?
Expander控件的IsExpanded的屬性可以設置或獲取控件的當前折疊狀態。在圖中的expander1
控件的IsExpanded="True",當窗體初次加載時,就會顯示其內容。IsExpanded屬性默認為false
ExpandDirection屬性可以設置控件的展開方向,可以設置上下左右展開
圖中名稱為expander2的控件的展開方向設置為想右展開
?
代碼
<Window?x:Class="WpfContentControl.MainWindow"
????????xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
????????xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
????????Title="MainWindow"?Height="350"?Width="525">
????<Grid>
????????<Grid.RowDefinitions>
????????????<RowDefinition></RowDefinition>
????????????<RowDefinition></RowDefinition>
????????</Grid.RowDefinitions>
????????????<Expander?Header="可折疊面板"??Name="expander1"?IsExpanded="True" >
????????????<StackPanel>
????????????????<RadioButton>中國</RadioButton>
????????????????<RadioButton>美國</RadioButton>
????????????????<RadioButton>日本</RadioButton>
????????????????<RadioButton>法國</RadioButton>
???????????????
????????????</StackPanel>
????????</Expander>
????????<Expander??Name="expander2"?Grid.Row="1"?ExpandDirection="Right">
????????????<Expander.Header>
????????????????<Image?Source="1.gif"??Width="50"?Height="50"></Image>
????????????</Expander.Header>
????????????<StackPanel>
????????????????<CheckBox>法國隊</CheckBox>
????????????????<CheckBox>意大利隊</CheckBox>
????????????????<CheckBox>巴西隊</CheckBox>
????????????????<CheckBox>阿根廷隊</CheckBox>
????????????</StackPanel>
????????</Expander>
????</Grid>
</Window>
注意:Expander控件提供了一些事件供用戶進行操作。
Collapsed事件:在控件的內容被折疊收起前,引發該事件。
Expanded事件:在控件的內容被展開顯示前,引發該事件。
Expander提供了很多事件,關于其他事件的使用,用戶可以在屬性窗口中找到相應的事件,可以一一試驗.
?
GroupBox組合框控件
WPF中的??GroupBox控件類似于WINFORM中的GroupBox控件,用于組合一些相關的控件,它也是包含一個標頭和一個內容,同時可以自定義標頭
效果圖
?
代碼
<Window?x:Class="WpfContentControl.groupctrl"
????????xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
????????xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
????????Title="groupctrl"?Height="385"?Width="559">
????<Grid>
????????<Grid.RowDefinitions>
????????????<RowDefinition></RowDefinition>
????????????<RowDefinition></RowDefinition>
????????</Grid.RowDefinitions>
????????<GroupBox??Name="groupBox1"?BorderBrush="Red">
????????????<GroupBox.Header>
????????????????<StackPanel?Orientation="Horizontal">
????????????????????<Image?Source="1.gif"></Image>
????????????????????<TextBlock>GroupBox使用演示</TextBlock>
????????????????</StackPanel>
????????????</GroupBox.Header>
????????????<StackPanel>
????????????????<CheckBox>中國隊</CheckBox>
????????????????<CheckBox>法國隊</CheckBox>
????????????????<CheckBox>日本隊</CheckBox>
????????????????<CheckBox>美國隊</CheckBox>
????????????</StackPanel>
????????</GroupBox>
????</Grid>
</Window>
?
TabControl標簽控件
TabControl和winform中的TabControl控件類似,它也可以自定義標頭,可以定義多個標簽項,通過設置標簽項的IsSelected屬性可以指定在窗體首次打開時,默認顯示哪個標簽頁
效果圖
?
?
代碼
<Window?x:Class="WpfContentControl.TabCtro"
????????xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
????????xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
????????Title="TabCtro"?Height="328"?Width="366">
????<Grid>
????????<TabControl?Name="tabControl1">
????????????<TabItem?Name="tabItem1">
????????????????<TabItem.Header>
????????????????????<Button>標簽</Button>
????????????????</TabItem.Header>
????????????????<StackPanel>
????????????????????<TextBlock>TABCONTROL控件的簡單使用</TextBlock>
????????????????</StackPanel>
????????????</TabItem>
????????????<TabItem?Name="tabitem2"?IsSelected="True">
????????????????<TabItem.Header>
????????????????????<StackPanel?Orientation="Horizontal">
????????????????????????<Image?Source="1.gif"?Width="20"></Image>
????????????????????????<TextBlock>標簽2</TextBlock>
????????????????????</StackPanel>
????????????????</TabItem.Header>
????????????????<StackPanel>
????????????????????<CheckBox>中國</CheckBox>
????????????????????<CheckBox>美國</CheckBox>
????????????????</StackPanel>
????????????</TabItem>
????????</TabControl>
????</Grid>
</Window>
?
3派生自ItemsControl的控件
這種類型的控件如LISTBOX,關于這種類型控件的講解,我會在后面專門抽出節課來進行講解
?
4.?派生自HeaderedItemsControl的控件
這種類型的控件包括一個標頭和一個內容集合,如MenuItem菜單項控件,TOOLBAR工具條控件
TreeViewIitem控件,等,這一節的控件我也會挑出一節專門課程來進行講解。
這一節主要給大家講解了一下控件的大致分類。沒有細講各個控件的用法,在下一節會為大家講解各個控件的仔細用法。
?
demo下載:http://download.csdn.net/source/2487167
總結
以上是生活随笔為你收集整理的【转】WPF从我炫系列3---内容控件的用法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 世界最强火箭来了 马斯克:SpaceX星
- 下一篇: 微信推出群聊消息置顶功能上热搜 网友吐槽