XAML五个布局元素

1.Grid: 网格。Grid布局可以自定义行和列并通过行列的数量、行高列宽来调整控件的布局。近似Html中的table。

特点:可以定义任意数量的行和列,非常灵活;

行的高度和列的宽度可以使用绝对值、相对比例或自动调整的方式进行精确设定,并可以设置最大和最小值;

内部元素可以设置自己所在的行和列,还可以设置自己纵向跨几行,横向跨几列;

可以设置Children元素的对齐方向

例子:

    <Grid ShowGridLines="True">

        <Grid.RowDefinitions>

            <RowDefinition ></RowDefinition>

            <RowDefinition ></RowDefinition>

        </Grid.RowDefinitions>

        <Grid.ColumnDefinitions>

            <ColumnDefinition Width="100"></ColumnDefinition>

            <ColumnDefinition Width="Auto"></ColumnDefinition>

            <ColumnDefinition Width="50"></ColumnDefinition>

        </Grid.ColumnDefinitions>

        <Button Grid.Row="0" Grid.Column="0" Margin="3">1</Button>

        <Button Grid.Row="0" Grid.Column="2" Margin="3">2</Button>

        <Button Grid.Row="1" Grid.Column="0" Margin="3">3</Button>

        <Button Grid.Row="1" Grid.Column="2" Margin="3">4</Button>

        <GridSplitter Grid.Row="0" Grid.Column="1" Grid.RowSpan="2" Width="3" VerticalAlignment="Stretch" HorizontalAlignment="Center" ShowsPreview="False">

        </GridSplitter>

</Grid>

 

效果图:

 

2. StackPanel:栈式面板。栈式面板可将包含的元素在水平或垂直方向排成一条线,当移除一个元素后,后面的元素会自动向前填充空缺。

特点:同类元素排列紧凑,移除一个元素后,后面的元素会自动向前填充空缺

例子:

<StackPanel x:Name="stackpanel" Margin="0" Orientation="Horizontal">

        <Button Content="1"></Button>

        <Button Content="22"></Button>

        <Button Content="333"></Button>

        <Button Content="4444"></Button>

        <Button Content="55555"></Button>

</StackPanel>

 

效果图:

 

3. Canvas:画布。内部元素可以使用以像素为单位的绝对坐标进行定位,类似于Windows Form 的布局方式。

特点:依赖纵横坐标,艺术性较强。

例子:

<Canvas>

        <TextBox Width="123" BorderBrush="Blue"></TextBox>

        <TextBox Canvas.Left="150" Canvas.Top="200" Width="200" BorderBrush="Green"></TextBox>

        <Button Height="200" Canvas.Right="10" Canvas.Bottom="30" Content="按钮"></Button>

    </Canvas>

 

效果图:

 

4. DockPanel:泊靠式面板。内部元素可以选择泊靠的方向(上下左右),类似于Winform中设置控件的Dock属性。

特点:内部元素可以选择泊靠的方向

例子:

<DockPanel LastChildFill="False">

        <Button DockPanel.Dock="Left" Content=" 左 "></Button>

        <Button DockPanel.Dock="Top" Content=" 上 "></Button>

        <Button DockPanel.Dock="Right" Content=" 右 "></Button>

        <Button DockPanel.Dock="Bottom" Content="下"></Button>

        <Button  DockPanel.Dock="Top" Content="最后一个按钮不填充剩余空间"></Button>

</DockPanel>

 

效果图:

 

5. WrapPanel:自动折行面板。内部元素在排满一行后能够自动折行,类似于Html中的流式布局。

特点:内部元素在排满一行后能够自动折行

例子:

<WrapPanel Orientation="Vertical">

        <Button Width="100">按钮1</Button>

        <Button Width="100">按钮2</Button>

        <Button Width="100">按钮3</Button>

        <Button Width="100">按钮4</Button>

        <Button Width="100">按钮5</Button>

        <Button Width="100">按钮6</Button>

</WrapPanel>

 

效果图:

当Height="200"

 

当Height="100"

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值