gpt4 book ai didi

c# - Panel.Dock Fill 忽略其他 Panel.Dock 设置

转载 作者:IT王子 更新时间:2023-10-29 03:31:54 26 4
gpt4 key购买 nike

如果您在表单上创建一个面板并将其设置为 Dock=Top,然后放下另一个面板并设置其 Dock=Fill,它可能会填满整个表单,而忽略第一个面板。更改 Tab 键顺序没有任何作用。

最佳答案

停靠布局取决于同级控件的顺序。控件停靠“按钮向上”,因此集合中的最后一个控件首先停靠。停靠控件仅考虑先前 停靠 sibling 的布局。因此,如果您希望它考虑其他停靠控件,则带有 Dock=Fill 的控件应该在同级顺序中排在第一位(顶部)。如果它不是第一个控件,则较早的控件将与它重叠。

这可能会造成混淆,因为兄弟顺序不一定与视觉顺序相同,并且兄弟顺序在设计 View 中并不总是显而易见的。

Document outline 窗口(查看 -> 其他窗口 -> 文档大纲)提供了一个有用的树状 View 来了解控件的层次结构和顺序,并允许您更改控件的兄弟顺序。

您还可以通过上下文菜单直接在设计器中更改同级顺序 -> 置于前面/发送到后面,这会将控件移动到同级中的第一个或最后一个。这些菜单标签可能有些困惑,因为实际效果取决于布局模型。

对于固定定位控件,2D 位置与兄弟顺序无关,但是当控件重叠时,顺序中最早的控件将“在最上面”,隐藏顺序中较晚的部分兄弟。在这种情况下,置于前端/置于后端是有意义的。

在流程或表格布局面板中,创建顺序决定了控件的视觉顺序。没有重叠的控件。所以放在前面/放在后面实际上意味着在控件的顺序中放在最前面或最后。

对于停靠布局,置于前面/发送到后面可能会更加困惑,因为它决定了停靠的计算顺序,因此填充停靠控件上的“置于前面”会将控件放置在 <父级的 em>中间,考虑所有边缘停靠控件。

关于c# - Panel.Dock Fill 忽略其他 Panel.Dock 设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/154543/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com