xaml学习
1.高度定义
绝对尺寸(about sizing):一个实际得数字
自动(autosizing):值为Auto.实际作用是取实际控件得所需得最小值
Proportinal sizing(也可以叫做star sizing 因为有个*号例如110*或者*等).实际作用取尽可能大得值. 当出现多行或者多列被定义为*则代表他们之间按比例方设置尺寸
2.布局
在WPF窗体中,一个窗体只能持有一个控件,当多个控件想要在窗体中展现时,就需要先设置一个容器控件(continer),然后将其他控件放到这个控件里.形成树状结构.
第一条-控件得布局应该由容器来决定而不是通过自身使用margin之类得东西来控制位置,因为这些属性原本应该是控制自己内部展现或者邻里之间得关系
第二条-控件应该避免明确的定义具体得尺寸,因为显示器得分辨率以及windows得大小可能随时会改变.写得太具体了会出现大面积得空白或者缺失.但为了控件功能及展示得效果,应该限定一个可接受的最大及最小尺寸.通过MinWidth,MinHeight,MaxWidth,MaxHeight来设置
第三条-不要将界面元素设置成与屏幕坐标相关.
第四条-容器将有效空间共享给其他子控件
第五条-容器嵌套使用,不同得容器表现效果不同,必要时要结合使用
代码:
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
<RowDefinition Height="22" />
</Grid.RowDefinitions>
<ListView Name="listView1" MinWidth="280" >
<ListView.View>
<GridView x:Name="gridView1">
<GridViewColumn Header="ContactID"></GridViewColumn>
<GridViewColumn Header="FirstName"></GridViewColumn>
<GridViewColumn Header="LastName"></GridViewColumn>
<GridViewColumn Header="EmailAddress"></GridViewColumn>
</GridView>
</ListView.View>
</ListView>
<WrapPanel Grid.Row="1" Orientation="Horizontal"></WrapPanel>
<Button Grid.Row="2" HorizontalAlignment="Right" Click="button1_Click" Name="button1">Refresh</Button>
</Grid>
代码分析1) 容器控件 Grid和WrapPanel.
Grid即网络.前面定义了三行高度分别是*,Auto和22.其实还可以通过ColumnDefinition来定义多个列.他得子控件被放在一个一个得实现定义好得小格子.整齐排列
WrapPanel,是将各个控件按照行或列,当长度或者高度不够就会自动调换列或者行
另外还有一个常用得StackPanel,将控件按照行或者列来排列不会回行
2) 在代码中WrapPanel及button上面得Grid.Row="n",这个就是Attack properties用来设置WrapPanel及button应该在父容器得什么位置.这是WPF得特性之一.
3) ListView.View及Grid.RowDefinitions. 这是Complex Properties
4) x:Name = "sss". 是Markup Extensions()
http://www.cnblogs.com/zcttxs/archive/2012/04/01/2428527.html