Silverlight学习笔记—3
原创
©著作权归作者所有:来自51CTO博客作者命苦的原创作品,请联系作者获取转载授权,否则将追究法律责任
在上一次学习了helloworld的项目结构,这次主要学习了silverlight的布局管理。
a. Grid:网格布局。通过<Grid.RowDefinitions> 和 <Grid.ColumnDefinitions>来定义Grid的行和列,使用Grid.Row和Grid.Column两个附加属性指定子元素在Grid中显示的位置,这是一种非常灵活的布局方式。如下面的XAML声明:
<Gridx:Name="LayoutRoot"Background="#46461F" ShowGridLines="True">
<Grid.RowDefinitions>
<RowDefinition Height="120"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="100"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Row="0"Grid.Column="0" Text="UserName:" VerticalAlignment="Center" Foreground="White"></TextBlock>
<TextBlock Grid.Row="1"Grid.Column="0" Text="Password:" VerticalAlignment="Center" Foreground="White"></TextBlock>
<TextBox Grid.Row="0"Grid.Column="1" Width="200" Height="30"HorizontalAlignment="Left"></TextBox>
<TextBox Grid.Row="1"Grid.Column="1" Width="200" Height="30"HorizontalAlignment="Left"></TextBox>
</Grid>
定义一个两行两列的Grid,做一个简单的用户登录的布局,为了明显起见,把ShowGridLines属性设为True,以便能够显示出边框线。同时,我们指定了第一行的高度为120,而第二行的则是剩余的高度,用*来指定。
b.
StackPanel
StackPanel支持用行或列的方式来进行页面布局,默认情况下所有的子元素会垂直的排列显示,如下面的XAML声明三个矩形:
<StackPanelBackground="#46461F">
<Rectangle Fill="#0099FF"Stroke="White"
Width="100"Height="50" Margin="10"/>
<Rectangle Fill="#0099FF"Stroke="White"
Width="100"Height="50" Margin="10"/>
<Rectangle Fill="#0099FF"Stroke="White"
Width="100"Height="50" Margin="10"/>
</StackPanel>
当然我们也可以指定为水平排列,通过Orientation属性指定:
<StackPanel Background="#46461F" Orientation="Horizontal">