XAML控件
作者:互联网
定义:
WPF中是数据驱动UI,数据是核心,是主动的;UI从属于数据并表达数据,是被动的。
UI的功能是给用户观察和操作数据,为了让用户观察数据,所以需要用UI元素来显示数据;为了让用户操作数据,需要用UI元素响应用户的操作。WPF把能够展示数据,响应用户操作的UI元素称为控件(Control),Control是数据和行为的载体,而无需具有固定的形象
分类:
- 布局控件:可以容纳多个控件或嵌套其它布局控件,用于在UI上组织和排列控件。Grid、StackPanel、DockPanel等控件都属这类,他们拥有共同的父类Panel。
- 内容控件:只能容纳一个其他控件或布局控件作为它的内容。Window、Button等控件属于这类,因为只能容纳一个其他控件或布局控件作为它的内容,所以经常需要借助布局控件来规划其内容,共同父类为ContentControl。
<StackPanel>
<Button Width="50">
<TextBlock Text="Hello"/>
</Button>
<Button Width="40">
<Image Source="Image\秀.png" Height="73"></Image>
</Button>
<RadioButton Width="80" Content="请选择"/>
</StackPanel>
- 带标题内容控件:相当于一个内容控件,但可以加一个标题(Header),标题部分亦可以容纳一个控件或布局。例如GroupBox、TabItem。共同父类为HeaderedContentControl。
<Grid>
<GroupBox Margin="10" BorderBrush="Pink">
<GroupBox.Header>
<TextBlock Text="你好!"/>
</GroupBox.Header>
<TextBlock TextWrapping="WrapWithOverflow" Margin="10" Text="如果你懂得了这个道理,那么你已经长大了,如果一个人长时间不联系,那就不要去打搅了,毕竟每个人都有每个人的生活,每个人都有各自的疲惫,当初她是你从茫茫人海中挑选出来的,现在不过是归还于茫茫人海。"></TextBlock>
</GroupBox>
</Grid>
TextWrapping:是否换行文本,有三个属性值默认是NoWrap,
- 条目控件:可以显示一列数据,一般情况这列数据类型相同,这类控件有ListBox、ComboBox。共同基类为ItemsControl。
<Grid>
<ListBox Margin="5">
<CheckBox Content="选项1"></CheckBox>
<CheckBox Content="选项2"></CheckBox>
<CheckBox Content="选项3"></CheckBox>
<Button Content="按钮1"></Button>
<Button Content="按钮2"></Button>
<Button Content="按钮3"></Button>
</ListBox>
</Grid>
- 带标题的条目控件:相当于一个条目控件加上一个标题显示区,只有TreeViewItem、MenuItem、ToolBar三个控件。此类与ItemsControl类似,此类控件用于显示层级关系数据。共同基类为HeaderedItemsControl。
<Grid>
<TreeViewItem>
<TreeViewItem.Header>
<AccessText Text="姓名列表"></AccessText>
</TreeViewItem.Header>
<AccessText Text="Lina "></AccessText>
<AccessText Text="Jon "></AccessText>
<AccessText Text="Tom "></AccessText>
<Button Content="按钮1"></Button>
<Button Content="按钮2"></Button>
<CheckBox Content="选项1"></CheckBox>
<CheckBox Content="选项2"></CheckBox>
</TreeViewItem>
</Grid>
- 特殊内容控件:例如TextBox只能显示文本,不能编辑所以称之为静态文本,TextBlock则可以允许用户编辑文本内容、Image容纳图片类型数据
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="18*"/>
<RowDefinition Height="18*"/>
<RowDefinition Height="48*"/>
</Grid.RowDefinitions>
<TextBlock Text="我是静态文本不可编辑" Grid.Row="0"></TextBlock>
<TextBox Text="我是可以编辑的TextBox" Grid.Row="1"></TextBox>
</Grid>
标签:控件,XAML,用户,内容,UI,容纳,数据 来源: https://blog.csdn.net/qq_44551864/article/details/90290819