WPF布局

本文详细介绍了WPF中三种常用的UI布局控件:StackPanel、DockPanel和Grid。StackPanel允许元素水平或垂直排列;DockPanel通过设置元素的Dock属性来定位;Grid则类似表格,支持行列定义和灵活的元素放置。示例代码展示了这些布局控件的用法,包括嵌套和属性设置,帮助开发者更好地理解和应用这些布局。
摘要由CSDN通过智能技术生成

一、布局

StackPanel:水平或垂直排列元素,Orientation(方向)属性分别为Horizontal(水平)或者Vertical(垂直)

DockPanel:根据容器的边界、元素进行Top,Bottom,Left,Right设置

Grid:类似于table表格,可灵活设置行(row)列(column)并放置控件元素,比较常用

<Grid >
        <Grid.RowDefinitions>
            <RowDefinition/>
            <RowDefinition/>
        </Grid.RowDefinitions>

        <Grid.ColumnDefinitions>
            <ColumnDefinition/>
            <ColumnDefinition/>
        </Grid.ColumnDefinitions>

        <Border Background="Red"/>
        <Border Grid.Column="1" Background="Blue"/>
        <Border Grid.Row="1" Background="Yellow"/>
        <Border Grid.Row="1" Grid.Column="1" Background="Green"/>
    </Grid>

Border和StackPanel的使用

<Border  BorderBrush="Green" BorderThickness="20" Padding="50,10,20,30"//左、上、右、下  CornerRadius="10" >
        <StackPanel Name="AAA" Orientation="Vertical" Background="Yellow">
            <Label Content="Label"/>
            <Button Content="Button" Height="100" Width="50" HorizontalAlignment="Center"/>
            <Button Content="Button2" Height="50" Width="50" VerticalAlignment="Bottom" Background="Blue"/>
            <Button Content="Button3" Height="50" Width="50"  VerticalAlignment="Top" Background="Red" Margin="10,20,30,40"/>
        </StackPanel>
    </Border>

DockPanel的使用

<Grid>
        <DockPanel LastChildFill="True" //最后一个元素填充满剩余空间,默认为False,需要改为True>
            <Button Content="Button1" DockPanel.Dock="Left" Background="Red"/>
            <Button Content="Button2" DockPanel.Dock="Bottom" Height="60"/>
            <Button Content="Button3" DockPanel.Dock="Right" />
            <Button Content="Button4" DockPanel.Dock="Top" />

  </DockPanel>
    </Grid>

嵌套

<DockPanel Name="DockPanel">
        <StackPanel DockPanel.Dock="Bottom" Name="StackPanel" Orientation="Horizontal" HorizontalAlignment="Right">
            <Button Content="OK" Margin="10,10,2,10" Padding="3" />
            <Button Content="Cancel" Margin="10,10,2,10" Padding="3"/>
        </StackPanel>
        <TextBox   Name="TexBox" DockPanel.Dock="Top" FontSize="90" >
            This a text 
        </TextBox>
    </DockPanel> 

Grid的介绍

<Grid ShowGridLines="True" //运行是否显示线 UseLayoutRounding="True"//边缘像素清晰>
        <Grid.RowDefinitions>
            <RowDefinition/>
            <RowDefinition/>
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*"/>//3种方法,1、直接数值2、Auto自动适应3、*倍数增加
            <ColumnDefinition Width="Auto"/>
            <ColumnDefinition Width="2*"/>
            <ColumnDefinition Width="4*"/>
        </Grid.ColumnDefinitions>
        <Button Content="left top" Grid.Row="0" Grid.Column="0" Margin="3"/>
        <Button Content="center top" Grid.Row="0" Grid.Column="2" Margin="3"/>
        <Button Content="right top" Grid.Row="0" Grid.Column="3" Margin="3"/>
        <Button Content="left bottom" Grid.Row="2" Grid.Column="0" Margin="3"/>
        <Button Content="center bottom" Grid.Row="1" Grid.Column="2" Margin="3"/>
        <Button Content="right bottom" Grid.Row="2" Grid.Column="2" Grid.ColumnSpan="3"//从第2列覆盖到第3列 Margin="3"/>
        <GridSplitter Grid.Column="1" Width="3" Grid.RowSpan="2" VerticalAlignment="Stretch" HorizontalAlignment="Center" />
    </Grid> 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力敲代码的小曦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值