硬件千差万别,电脑各种屏幕比率,各种分辨率,网页要适应各种分辨率(对开发人员来讲是头疼的活)
幸福的Iphone,Windows phone程序员,苦逼的Android程序员
模拟器展示屏幕,分辨率改变导致布局的变化
布局就是对子控件大小,位置的控制
win8中的布局:Canvase布局,StackPanel布局,Grid布局
Canvase布局
根据坐标,控件大小进行绝对定位布局(附加属性)
<Canvas>
<Button Content="按钮1" FontSize="24" Canvas.Left="10" Canvas.Top="10"/>
<Button Content="按钮2" FontSize="24" Canvas.Left="10" Canvas.Top="60"/>
<Button Content="按钮3" FontSize="24" Canvas.Left="10" Canvas.Top="110"/>
<Button Content="按钮4" FontSize="24" Canvas.Left="10" Canvas.Top="160"/>
</Canvas>
StackPanel布局
就是一个面板,控制控件横向或纵向排列
<StackPanel Canvas.Left="10" Canvas.Top="220" Orientation="Horizontal" >
<TextBlock Text="张三" FontSize="20" Margin="10,10,10,10"></TextBlock>
<TextBlock Text="李四" FontSize="20" Margin="10,10,10,10"></TextBlock>
<TextBlock Text="王五" FontSize="20" Margin="10,10,10,10"></TextBlock>
<TextBlock Text="赵六" FontSize="20" Margin="10,10,10,10"></TextBlock>
</StackPanel>
Grid布局
类似html中的Table,用行和列来分隔,也可以跨行跨列(跨行和跨列和html中的table还是不一样的),Tab键的使用
width和height的值的说明:
Auto:根据控件的高度和宽度自适应
0.3*:占整个高度或宽度的30%
2*:同上(照目前的理解)
注:可以通过Margin属性控制元素左上右下的距离
<Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
<Grid.RowDefinitions>
<RowDefinition Height="0.2*"/>
<RowDefinition Height="0.5*"/>
<RowDefinition Height="0.3*"/>
</Grid.RowDefinitions>
<TextBlock Text="姓名" Name="tbname" FontSize="30"/>
<TextBlock Text="地址" Name="tbaddress" FontSize="30" Grid.Row="1"/>
<TextBlock Text="手机" Name="tbmobile" FontSize="30" Grid.Row="2"/>
</Grid>