1.Grid:是 WPF 中用于创建灵活布局的强大控件。它允许您通过行和列来安排子元素。
基本语法:

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="*"/>
        <RowDefinition Height="2*"/>
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto"/>
        <ColumnDefinition Width="*"/>
    </Grid.ColumnDefinitions>

    <!-- 子元素 -->
    <Button Content="Button 1" Grid.Row="0" Grid.Column="0"/>
    <Button Content="Button 2" Grid.Row="0" Grid.Column="1"/>
    <TextBox Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2"/>
</Grid>

主要属性:
▪RowDefinitions 和 ColumnDefinitions: 定义网格的行和列。每个 RowDefinition 和 ColumnDefinition 可以设置其宽度和高度。
▪Height 和 Width: 可以设置为固定值、Auto(自动调整大小以适应内容)或星号表示法(如 *),星号表示法用于分配剩余空间。
▪Grid.Row 和 Grid.Column: 指定子元素位于哪一行和哪一列。行列编号从 0 开始。
▪Grid.RowSpan 和 Grid.ColumnSpan: 指定子元素横跨的行数或列数。
创建具有两行两列的网格,其中第一行高度自适应,第二行高度是第一行的两倍;两列宽度均分配:

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="2*"/>
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*"/>
        <ColumnDefinition Width="*"/>
    </Grid.ColumnDefinitions>

    <TextBlock Text="Row 0, Column 0" Grid.Row="0" Grid.Column="0"/>
    <TextBlock Text="Row 0, Column 1" Grid.Row="0" Grid.Column="1"/>
    <TextBlock Text="Row 1, Column 0" Grid.Row="1" Grid.Column="0"/>
    <TextBlock Text="Row 1, Column 1" Grid.Row="1" Grid.Column="1"/>
</Grid>

2.StackPanel:是 WPF 中的一种布局控件,用于按顺序(水平或垂直)排列子元素。
基本语法:

<StackPanel Orientation="Horizontal" VerticalAlignment="Top" HorizontalAlignment="Left">
    <!-- 子元素 -->
    <Button Content="Button 1"/>
    <Button Content="Button 2"/>
    <Button Content="Button 3"/>
</StackPanel>

主要属性:
▪Orientation: 决定子元素是水平(Horizontal)排列还是垂直(Vertical)排列。默认值是 Vertical。
▪VerticalAlignment 和 HorizontalAlignment: 决定 StackPanel 如何在其父容器中对齐。可以设置为 Top、Bottom、Left、Right 或 Center。
▪Margin: 设置 StackPanel 边缘与其周围元素之间的距离。
▪Background: 设置 StackPanel 的背景色。
垂直排列的 StackPanel:

<StackPanel Orientation="Vertical">
    <Button Content="Button 1"/>
    <Button Content="Button 2"/>
    <TextBox Text="Enter Text Here"/>
</StackPanel>

水平排列的 StackPanel:

<StackPanel Orientation="Horizontal">
    <Button Content="Button 1"/>
    <Button Content="Button 2"/>
    <TextBox Text="Enter Text Here"/>
</StackPanel>

3.WrapPanel:与 StackPanel 类似,但当空间不足以容纳更多元素时,它会将元素包裹到下一行或列。
4.DockPanel:允许子元素停靠到父容器的顶部、底部、左侧或右侧。
5.Canvas:提供了一个绝对定位的空间,你可以在其中明确地设置子元素的精确位置和大小。
6.UniformGrid:类似于 Grid,但所有单元格的大小都是一致的。
7.TabControl:允许通过选项卡来组织内容,每个选项卡对应一个页面。
8.Expander:提供了一个可以展开和折叠的区域,用于显示隐藏的内容。
9.ScrollViewer:当内容超出可视区域时,提供滚动功能。
10.Border:虽然主要用于装饰,但也可以用作布局控件,为其子元素提供边框。
11、Viewbox:自动缩放其内容以适应分配给它的空间。
12.StackPanel 和 DockPanel 的组合:这些控件经常结合使用,以实现更复杂的布局。

标签: none

添加新评论