C#入门之 WPF布局控件

基本布局控件:

  1. Canvas:允许任何合适的方式在其中放置子控件,不会限制也不会辅助进行控件位置的摆放。
  2. DockPanel:该控件可以让其中的子控件贴靠在自己四条边中的一边,最后一个子控件可以充满剩余区域。
  3. Grid:该控件让子控件的定位变得特别灵活,布局可以分为若干行若干列,则可以在网格布局中进行控件的对齐。
  4. StackPanel:该控件可以按照水平或垂直方向对控件进行排列。
  5. WrapPanel:具有与StackPanel接近的特性进行控件排列,但可以根据空间大小进行多行多列的排列。

堆叠顺序:

  • DockPanel:
    注意:
    1.控件1只指定了停靠上部,和控件高度,则会出现横向填充空余区域的现象。
    2.控件2制定了停靠上部(停靠在1下面,它上面就是控件1),已指定了高度和宽度,则不会出现填充剩余区域现象,且具有中心对齐的属性。
     <DockPanel Background="AliceBlue">
              <Border DockPanel.Dock="Top" Padding="10" Margin="5"
      Background="Aquamarine" Height="45">
                  <Label>1) DockPanel.Dock="Top"</Label>
              </Border>
              <Border DockPanel.Dock="Top" Padding="10" Margin="5"
      Background="PaleVioletRed" Height="45" Width="200">
                  <Label>2) DockPanel.Dock="Top"</Label>
              </Border>
              <Border DockPanel.Dock="Left" Padding="10" Margin="5"
      Background="Bisque" Width="200">
                  <Label>3) DockPanel.Dock="Left"</Label>
              </Border>
              <Border DockPanel.Dock="Bottom" Padding="10" Margin="5"
      Background="Ivory" Width="200" HorizontalAlignment="Right">
                  <Label>4) DockPanel.Dock="Bottom"</Label>
              </Border>
              <Border Padding="10" Margin="5" Background="BlueViolet">
                  <Label Foreground="White">5) Last control</Label>
              </Border>
    
    
          </DockPanel>

    460536-20170909235459976-1754444218.png

  • StackPanel:可以将控件停靠在边缘,跟随主窗口进行移动,但是不会填满剩余区域,不会跟随其主窗口进行缩放。
        <Grid>
            <StackPanel HorizontalAlignment="Left" Height="128" VerticalAlignment="Top"
 Width="284" Orientation="Horizontal">
                <Button Content="Button" Height="128" VerticalAlignment="Top" Width="75"/>
                <Button Content="Button" Height="128" VerticalAlignment="Top" Width="75"/>
                <Button Content="Button" Height="128" VerticalAlignment="Top" Width="75"/>
            </StackPanel>
            <StackPanel HorizontalAlignment="Left" Height="58" VerticalAlignment="Bottom"
 Width="284" Orientation="Vertical">
                <Button Content="Button" HorizontalAlignment="Left" Width="284"/>
                <Button Content="Button" HorizontalAlignment="Left" Width="284"/>
                <Button Content="Button" HorizontalAlignment="Left" Width="284"/>
            </StackPanel>
        </Grid>

460536-20170909235627022-934625012.png

  • WrapPanel:StackPanel的扩展版本,如果控件单行无法容下则会安排到下一行。
    <WrapPanel Background="AliceBlue">
        <Rectangle Fill="#FF000000" Height="50" Width="50" Stroke="Black"
    RadiusX="10" RadiusY="10" />
        <Rectangle Fill="#FF111111" Height="50" Width="50" Stroke="Black"
    RadiusX="10" RadiusY="10" />
        <Rectangle Fill="#FF222222" Height="50" Width="50" Stroke="Black"
    RadiusX="10" RadiusY="10" />
        <Rectangle Fill="#FFFFFFFF" Height="50" Width="50" Stroke="Black"
    RadiusX="10" RadiusY="10" />
    </WrapPanel>
  • Grid控件
    可以分为多行多列,以摆放子控件。可以使用RowDifinitions和ColumnDefinitions来进行行列的限定。
    可以通过Width、Height、MinWidth、MaxWidth、MinHeight和MaxHeight来进行属性的调整。Width*表示可以占用剩下的控件。
    Grid的子控件可以使用Grid.Column和Grid.Row的附加属性限定自己是属于哪个单元格,这两个属性默认值为0.也就是说不填写则会默认位于左上角的单元格中。Grid.ColumnSpan和Grid.RowSpan属性来使自己跨越表格中的多个单元格。
    没有Margin属性,按钮会停留在左上角位置。

转载于:https://www.cnblogs.com/852deSN/p/7499823.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值