WPF布局控件之DockPanel

news2024/11/15 5:09:42

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的。
另外,当改变窗口尺寸时,这些控件也会对应比例改变,如下:

启动窗口不操作:

在这里插入图片描述

启动后拉长窗口:

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/376642.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数字图像处理

文章目录图像复原上升阶跃边缘、下降阶跃边缘、脉冲状边缘和屋顶状边缘曲线及其一阶导数和二阶导数有哪些特征&#xff1f;Hough变换的基本思想是什么&#xff1f;基本概念图像增强灰度变换直方图&#xff1a;直方图特点matlab代码空间域滤波平滑空间滤波均值滤波器&#xff1a…

python如何实现多线程

今天本来打算学习学习多进程的&#xff0c;但是由于我现在的电脑没有Linux系统&#xff0c;无法通过Linux系统编辑一些多进程的程序&#xff0c;因此我打算从多线程入手。 多线程 我们的程序一般都是多任务的&#xff0c;如果你没有好好的利用好&#xff0c;运行时就会出现卡…

【读论文】TCL: an ANN-to-SNN Conversion with Trainable Clipping Layers

DAC 2021 背景 通过ANN2SNN的方法得到的SNN中&#xff0c;存在准确性和延迟之间的一种权衡关系&#xff0c;在较大的数据集&#xff08;如ImageNet&#xff09;上可能会有较高的延迟。 主要贡献 分析了转换后SNN精度与延迟之间存在权衡关系的原因&#xff0c;并指出了如何缓…

6587: 计算分段函数

描述本题目要求计算下列分段函数f(x)的值&#xff1a;输入输入在一行中给出实数x。输出在一行中按“f(x) result”的格式输出&#xff0c;其中x与result都保留两位小数。样例输入10样例输出f(10.00) 3.16提示C/C可在头文件中包含math.h&#xff0c;并调用sqrt函数求平方根&am…

JAVA入门教程||Java Scanner 类||Java 异常处理

Java Scanner 类 java.util.Scanner是Java5的新特征&#xff0c;我们可以通过 Scanner 类来获取用户的输入。 下面是创建 Scanner 对象的基本语法&#xff1a; Scanner s new Scanner(System.in); 接下来我们演示一个最简单的的数据输入&#xff0c;并通过 Scanner 类的 nex…

产品分析丨豆瓣APP

本文将从以下几个方面进行分析&#xff1a;1. 产品功能结构2. 竞品分析3. 用户分析4. 用户调研5. 功能分析与优化方案6. 总结01 产品功能结构产品架构由豆瓣的产品架构图可看出&#xff0c;豆瓣是兼具书影音的评分系统和兴趣社区&#xff0c;以广告、知识付费和电商业务作为商业…

图解LeetCode——剑指 Offer 52. 两个链表的第一个公共节点

一、题目 输入两个链表&#xff0c;找出它们的第一个公共节点。 二、示例 如下面的两个链表&#xff1a; 在节点 c1 开始相交。 注意&#xff1a; 如果两个链表没有交点&#xff0c;返回 null.在返回结果后&#xff0c;两个链表仍须保持原有的结构。可假定整个链表结构中没…

代码质量与安全 | ChatGPT能帮到你什么还有待探索,但人工智能真的可以帮你做自动化测试

当听到“人工智能”&#xff08;AI&#xff09;时&#xff0c;你会想到什么&#xff1f; 你可能会开始想象科幻电影中的先进的人形机器人或者未来科技&#xff0c;但是&#xff0c;人工智能聊天机器人程序Chat GPT的爆火已经证明&#xff0c;这种“未来主义”技术已经融入了我…

三个月自学自动化测试,薪资15K直接翻倍,鬼知道我经历了什么····

学习软件测试是迫不得已&#xff0c;幸好最后通过自己的付出&#xff0c;得到了满意的回报。希望大家能通过我的经历得到一些帮助和思路。 零基础自学遇到的第一个难题就是需要怎么学&#xff0c;刚开始一头雾水&#xff0c;只能先从网上买些书来看&#xff0c;但是收效甚微。…

Unity中获取地形的法线

序之前&#xff0c;生成了地形图&#xff1a;(42条消息) 从灰度图到地形图_averagePerson的博客-CSDN博客那末&#xff0c;地形的法线贴图怎么获取&#xff1f;大概分为两个部分吧&#xff0c;先拿到法线数据&#xff0c;再画到纹理中去。关于法线计算Unity - Scripting API: M…

第4讲 cameraserver.rc详解(下)

本讲是Android Camera Native Framework专题的第4讲&#xff0c;我们介绍cameraserver.rc详解&#xff08;下&#xff09;&#xff0c;包括如下内容&#xff1a;Android init语言简介cameraserver.rc详解serviceuser选项group选项ioprio选项task_profiles选项rlimit选项更多&am…

领域自适应 DA Domain Adaptation

领域自适应是与机器学习和转移学习相关的领域。 当我们的目标是从源数据分布中学习在不同&#xff08;但相关&#xff09;的目标数据分布上的良好性能模型时&#xff0c;就会出现这种情况。 例如&#xff0c;常见垃圾邮件过滤问题的任务之一在于使模型从一个用户&#xff08;源…

2023年金三银四必备软件测试常见面试题1500问!!!【测试思维篇】

五、测试思维5.1 打电话功能怎么去测&#xff1f;我们会从几个方面去测试&#xff1a;界面、功能、兼容性、易用性、安全、性能、异常。1&#xff09;界面我们会测试下是否跟界面原型图一致&#xff0c;考虑浏览器不同显示比例&#xff0c;屏幕分辨率。2&#xff09;功能&#…

SpringBoot:SpringBoot配置文件application.properties、application.yml 和 application.ymal(2)

SpringBoot配置文件1. 配置文件格式1.1 application.properties配置文件1.2 application.yml配置文件1.3 application.yaml配置文件1.4 三种配置文件优先级和区别2. yaml格式2.1 语法规则2.2 yaml书写2.2.1 字面量&#xff1a;单个的、不可拆分的值2.2.2 数组&#xff1a;一组按…

《分布式技术原理与算法解析》学习笔记Day24

分布式缓存 在计算机领域&#xff0c;缓存是一个非常重要的、用来提升性能的技术。 什么是分布式缓存&#xff1f; 缓存技术是指用一个更快的存储设备存储一些经常用到的数据&#xff0c;供用户快速访问。 分布式缓存是指在分布式环境或者系统下&#xff0c;把一些热门数据…

全面零信任?Dell搞了个“大动作”

1860年&#xff0c;清朝僧格林沁带领数万骑兵&#xff0c;朝着数千英法联军发起猛烈冲锋&#xff0c;企图依靠清朝凶狠的骑兵突击战术击溃对方。然而&#xff0c;面对已经完成了近代化的西方军队&#xff0c;原来无往不利的八旗骑兵被打的土崩瓦解&#xff0c;再无任何抵抗的能…

Editor工具开发基础四:窗口EditorWindow

目录 1.设置窗口位置和大小 2.设置窗口最大和最小 3.设置窗口标题 4.设置窗中窗 BeginWindows和EndWindows 5.添加窗中窗可拖动 GUI.DragWindow() 完整代码&#xff1a; public class EditorToolWindow : EditorWindow {public static EditorToolWindow ins;[MenuItem(&q…

Elasticsearch:保护你的 Elasticsearch 实例 - 如何使用带有内置证书的 Docker 镜像

使用 docker 来构建 Elasticsearch 集群为开发者们带来了极大的方便。在我之前的文章中&#xff1a; Elasticsearch&#xff1a;使用 Docker compose 来一键部署 Elastic Stack 8.x Elasticsearch&#xff1a;如何在 Docker 上运行 Elasticsearch 8.x 进行本地开发 Elastic&am…

JavaSE-线程池(5)- ThreadPoolExecutor常用方法

JavaSE-线程池&#xff08;5&#xff09;- ThreadPoolExecutor常用方法 invokeAll ExecutorService 接口中定义的方法&#xff0c;给定一组任务&#xff0c;在所有任务执行完成时返回一个 Futures 列表&#xff0c;其中包含它们的状态和结果。 /*** Executes the given task…

Java基础:常见API(Math,System,Runtime,Object,BigInteger,BigDecima)

1.常见API 1.1 Math类 向上取整是向着数轴右边走的意思, 负数也是. 也可以叫进一法, 不论正数负数都会往右走一. 向下取整是向着数轴左边走. 也可以叫去尾法, 不论正负数都会将小数点后的数字去掉. 1.1.2 练习 // 判断有多少水仙花数int count 0;for (int i 100; i < 1…