1.控件到底是什么
控件:WPF中那些能够展示数据、响应用户操作的UI元素。
WPF中数据驱动UI,数据是核心、是主动的;UI从属于数据并表达数据、是被动的。控件所展示的数据,称为控件的”数据内容“,控件在响应用户操作后会执行一些方法或者和事件,称为控件的“行为”或者“算法内容”。控件是一个非常抽象的概念,应关注抽象的数据和行为而不是控件具体的形象。
2.WPF的内容模型
WPF中所有的控件,控件是包含内容的,内容模型就是装这些内容的总控件类。WPF的所有UI元素可以分为以下这些:
下面是对各类内容模型(WPF的UI类型的详解)
2.1 ContentControl类
2.2 HeaderedContentControl族
2.3 ItemsControl族
2.4 HeaderedItemsControl族
2.5 Decorator族
2.6 TextBlock和TextBox
2.7 Shape族元素
2.8 Panel族元素
所有用于UI布局的元素都属与Panel族。
2.8.1 UI布局
WPF中的UI布局元素:
1.Grid
Grid类似与表格,把Grid分成几行几列,分别在几行几列里再布局。
//把Grid分成三行
<Grid.RowDefinitions>
//1.8*就是按Grid面板比例分配的,面板整体尺寸改变,它也会保持固有的比例
<RowDefinition Height="1.8*"></RowDefinition>
//Auto中若开始没有控件,则行高和列宽都是0,有了实际控件后,控件多大,Auto属性就会让控件自动填充到合适的行高和列宽
<RowDefinition Height="Auto"></RowDefinition>
//固定值
<RowDefinition Height="60"></RowDefinition>
</Grid.RowDefinitions>
2.StackPanel
Orientation元素可以让StackPanel里的所有控件横着堆还是竖着堆
3.Canvas
4.DockPanel
5. WrapPanel
6.UniformGrid
类似与Grid,但是UniformGrid是按行按列均分面板,比如有9个button,它会自动分成三行三列