【WPF】布局基础-6种常见布局容器

在 WPF (Windows Presentation Foundation) 中,容器是用于布局和组织用户界面元素的重要组件。不同的容器提供不同的布局和排列方式,以满足不同的设计需求。

创建项目:在vs 2022中,创建新项目---->WPF应用 (. NET Framework)

1.Grid(网络)

Grid 是一个多行多列的网格,用于将控件按行和列进行布局。可以定义行和列的大小,以及控件如何跨越多个行和列。
优缺点:

  • 提供了高度灵活的布局选项,可用于复杂的界面设计。控制单元格的大小和控件的位置。

  • 在复杂布局中,可能需要更多的 XAML 代码。不适合逐行或逐列的动态数据绑定。

     Grid.RowDefinitions 和 Grid.ColumnDefinitions
      是 Grid 控件的属性,用于定义网格的行和列。
    
<Grid>
	<Grid.RowDefinitions>
	    <RowDefinition />
	    <RowDefinition  Height = "2*" />
	</Grid.RowDefinitions>
	<Grid.ColumnDefinitions>
	    <ColumnDefinition Width="2*" />
	    <ColumnDefinition />
	</Grid.ColumnDefinitions>
	
	<Border Grid.Column = "1" Background = "red" />
	<Border Grid.Row = "1" Background = "yellow" />
	<Border Grid.Row = "1" Grid.Column = "1" Background = "Blue" />
	<Border Background = "Green" />
	<Button Width = "100" Height = "50" Background="Black" />
<Grid/>

在这里插入图片描述

2. StackPanel (堆叠面板)

StackPanel 将其子元素按照水平或垂直堆叠排列。子元素依次排列,沿着一个轴。

  • 简单而轻量,易于使用。适用于按顺序排列的控件。

  • 不适合复杂的自定义布局。子元素在一行或一列上不具备灵活性。

3. WrapPanel (换行面板)

WrapPanel 按照顺序排列子元素,并在需要时自动换行。适用于按顺序排列的子元素,当空间不足时自动换行。

  • 简化了界面设计,适用于流式布局。适用于动态数据的排列。
  • 子元素可能难以精确控制位置。
 <StackPanel Orientation = "Horizontal" >
            <Button Width = "100" Height = "40" />
            <Button Width = "100" Height = "40" />
            <Button Width = "100" Height = "40" />
            <Button Width = "100" Height = "40" />
            <Button Width = "100" Height = "40" />
            <Button Width = "100" Height = "40" />
        </StackPanel>

        <WrapPanel Grid.Row = "1" Orientation = "Horizontal" >
            <Button Width = "100" Height = "40" />
            <Button Width = "100" Height = "40" />
            <Button Width = "100" Height = "40" />
            <Button Width = "100" Height = "40" />
            <Button Width = "100" Height = "40" />
            <Button Width = "100" Height = "40" />
            <Button Width = "100" Height = "40" />
            <Button Width = "100" Height = "40" />
            <Button Width = "100" Height = "40" />
        </WrapPanel>

在这里插入图片描述

4. DockPanel (停靠面板)

DockPanel 允许子元素停靠在其四个边缘:上、下、左、右,以及在中间。子元素按照停靠属性的指定位置排列。

  • 用于创建具有简单停靠布局的界面。简单的 XAML 和易于理解。
  • 不适用于复杂的自定义布局。难以实现复杂的相对定位。
<DockPanel >
    <Button Width = "100" Height = "40" DockPanel.Dock = "Left" />
    <Button Width = "100" Height = "40" DockPanel.Dock = "Top" />
    <Button Width = "100" Height = "40" DockPanel.Dock = "Right" />
    <Button Width = "100" Height = "40" DockPanel.Dock = "Bottom" />
    <Button Width = "100" Height = "40" />
</DockPanel>

在这里插入图片描述

5. UniformGrid容器

 <UniformGrid Columns = "3" Rows = "3" >
     <Button/>
     <Button/>
     <Button/>
     <Button/>
     <Button/>
     <Button/>
     <Button/>
     <Button/>
     <Button/>
 </UniformGrid>

在这里插入图片描述

6. Canvas画布

Canvas 允许在自由坐标上放置子元素。子元素的位置和大小可以精确控制。

  • 提供了绝对定位的能力,适用于自定义和绘图应用程序。控制子元素的位置和大小。

  • 不支持自动布局,不适用于响应式布局。需要手动处理子元素的重叠问题。

<Grid>
        <Label Content="用户名:" HorizontalAlignment="Left" Height="24" Margin="23,26,0,0" VerticalAlignment="Top" Width="58"/>
        <PasswordBox HorizontalAlignment="Left" Height="24" Margin="101,26,0,0"  VerticalAlignment="Top" Width="133"/>
        <Label Content="密码:" HorizontalAlignment="Left" Height="24" Margin="36,79,0,0" VerticalAlignment="Top" Width="58"/>
        <PasswordBox  HorizontalAlignment="Left" Height="24" Margin="101,79,0,0" VerticalAlignment="Top" Width="133"/>
        <Button Content="登录" HorizontalAlignment="Left" Height="25" Margin="101,131,0,0" VerticalAlignment="Top" Width="60"/>
        <Button Content="取消" HorizontalAlignment="Left" Height="25" Margin="174,131,0,0" VerticalAlignment="Top" Width="60"/>
 </Grid>

在这里插入图片描述

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
WPF是一用于构建应用程序用户界面的框架,UI布局是其中的一个重要部分。在WPF中,UI布局的源码是指定义和排列UI元素的代码。 WPF的UI布局源码主要包括XAML和C#代码两部分。XAML是一标记语言,用于描述和创建UI元素的层次结构。可以使用XAML代码来定义UI元素的属性,例如大小、位置、样式等。XAML代码通常位于.xaml文件中,可以在Visual Studio等开发工具中编辑和查看。 除了XAML之外,还可以使用C#代码来动态地创建、修改和排列UI元素。通过C#代码,可以通过调用WPF框架提供的布局控件和方法,通过代码逻辑来定义和控制UI元素的排列方式。 在WPF中,有多布局控件可供选择,例如Grid、StackPanel、WrapPanel、DockPanel等。每个布局控件都有自己的特点和使用方法,在设计UI布局时,可以根据具体需求选择适合的布局控件。 此外,WPF还提供了一些布局特性,例如布局容器布局管理器和面板容器等,用于更细致地控制UI元素的排列和布局方式。 总之,WPF的UI布局源码包括XAML和C#代码,通过这些代码可以定义和排列UI元素,选择合适的布局方式,并通过代码逻辑来控制UI的显示效果和交互行为。这些源码是构建WPF应用程序用户界面的基础,开发人员可以根据具体需求和设计来编写和修改UI布局代码,以实现丰富多样的用户界面体验。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值