WPF布局控件之DockPanel

DockPanel

DockPanel,英文释义为停靠面板,那是怎么个停靠法呢?如下:

在这里插入图片描述

<Window x:Class="LearnLayout.DockPanelWin"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:LearnLayout"
        mc:Ignorable="d"
        Title="DockPanelWin" Height="450" Width="800">
    <DockPanel>
		<Button Content="牛马人的一生" Background="lavender"/>
		<Button Content="我不是牛马" Background="Pink"/>
		<Button Content="下辈子还当牛马" Background="Snow"/>
		<Button Content="你才是牛马" Background="Snow"/>
	</DockPanel>
</Window>

其布局类似于水平布局的StackPanel,但是又不像,但是当我们设置其属性LastChildFill="False"后,其布局就类似StackPanel,如下:

在这里插入图片描述

<Window x:Class="LearnLayout.DockPanelWin"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:LearnLayout"
        mc:Ignorable="d"
        Title="DockPanelWin" Height="450" Width="800">
    <DockPanel LastChildFill="False">
		<Button Content="牛马人的一生" Background="lavender"/>
		<Button Content="我不是牛马" Background="Pink"/>
		<Button Content="下辈子还当牛马" Background="Snow"/>
		<Button Content="你才是牛马" Background="Snow"/>
	</DockPanel>
</Window>

其属性LastChildFill,字面意思,就是最后一个子空间是否填充。如果和StackPanel一样,那DockPanel的存在就没有多大意义了,可以通过设置DockPanel中控件的DockPanel.Dock属性来设置其排列顺序,如下:

在这里插入图片描述

<Window x:Class="LearnLayout.DockPanelWin"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:LearnLayout"
        mc:Ignorable="d"
        Title="DockPanelWin" Height="450" Width="800">
    <DockPanel >
		<Button Content="牛马人的一生" Background="lavender" DockPanel.Dock="Top"/>
		<Button Content="我不是牛马" Background="Pink" DockPanel.Dock="Left"/>
		<Button Content="下辈子还当牛马" Background="Snow" DockPanel.Dock="Bottom"/>
		<Button Content="你才是牛马" Background="Snow"/>
	</DockPanel>
</Window>

可以看到,通过设置DockPanel.Dock="Top"Content="牛马人的一生"Button布局在DockPanel的上方,其他控件同理,Content="你才是牛马"Button并未设置DockPanel.Dock,在这里也并未设置LastChildFill,所以其填充剩下的空间。
当想让第三个Button,即Content="下辈子还当牛马"的控件宽度和整个窗口一致,可以如下操作:

在这里插入图片描述

<Window x:Class="LearnLayout.DockPanelWin"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:LearnLayout"
        mc:Ignorable="d"
        Title="DockPanelWin" Height="450" Width="800">
    <DockPanel >
		<Button Content="牛马人的一生" Background="lavender" DockPanel.Dock="Top"/>
		<Button Content="下辈子还当牛马" Background="Snow" DockPanel.Dock="Bottom"/>
		<Button Content="我不是牛马" Background="Pink" DockPanel.Dock="Left"/>
		<Button Content="你才是牛马" Background="Snow"/>
	</DockPanel>
</Window>

在这里,仅仅是将Button位置调换,即可完成,因此可以得知DockPanel中是根据控件顺序将控件填满DockPanel的。
另外,当改变窗口尺寸时,这些控件也会对应比例改变,如下:

启动窗口不操作:

在这里插入图片描述

启动后拉长窗口:

在这里插入图片描述

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
WPF(Windows Presentation Foundation)是一种用于创建Windows应用程序的UI框架,提供了丰富的控件布局控件,下面是对常用控件布局控件的详细描述: 常用控件: 1. Button(按钮):用于触发特定操作或事件,如提交表单、打开对话框等。可以通过设置样式来自定义按钮的外观。 2. TextBox(文本框):用于接收用户输入的文本信息,如用户名、密码等。支持文本验证、自动完成等功能。 3. Label(标签):用于显示文本信息,如标题、说明等。可以设置字体、颜色、对齐方式等属性。 4. ComboBox(组合框):用于选择列表中的一项,可以是预定义选项或自定义输入。可以设置下拉列表展示方式、选中项等。 5. ListBox(列表框):用于显示列表中的多个项,用户可以选择其中的一项或多项。支持数据绑定和自定义项模板。 6. DataGrid(数据表格):用于展示和编辑数据集,支持排序、筛选、分组等功能。可以自定义列样式和编辑模式。 7. CheckBox(复选框):用于选择多个选项中的一个或多个。支持绑定Boolean值,可以设置选中状态和样式。 8. RadioButton(单选按钮):用于选择多个选项中的一个。可以使用GroupBox进行分组管理,支持绑定枚举值。 9. Slider(滑块):用于在一个范围内选择一个数值。可以设置最小值、最大值、刻度等属性,支持双向绑定。 10. Image(图片):用于显示图像文件或其他图形资源。支持设置源文件、缩放模式、透明度等属性。 布局控件: 1. Grid(网格):最常用的布局控件,将子元素按照行和列的方式排列。可以设置行和列的大小、对齐方式等。 2. StackPanel(堆栈面板):将子元素按照水平或垂直方向依次排列。支持自动布局和可伸缩性。 3. WrapPanel(自动换行面板):将子元素按照水平或垂直方向排列,当空间不足时自动换行。适用于流式布局。 4. DockPanel(停靠面板):将子元素停靠在上、下、左、右或中心位置。支持设置停靠顺序和占位大小。 5. Canvas(画布):允许通过绝对定位来放置子元素。可以设置子元素的坐标和大小。 6. UniformGrid(均匀网格):将子元素按照指定的行列数均匀排列。可以设置行数、列数和对齐方式。 7. GridSplitter(网格分隔条):用于在Grid中调整行和列的大小。可以水平或垂直拖动来调整布局。 以上是WPF中常用的控件布局控件的详细描述,开发人员可以根据具体需求选择合适的控件布局方式来设计用户界面。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值