取消组合小组?

所以我正在开发一个程序,它有几个屏幕,导致它有重叠的控件(按钮和列表)。

我将控件放在面板中,效果很好,然后显示/隐藏面板。

这也很有效。

我现在遇到一个问题,我有几个面板,当我向上移动一个面板时,它被另一个面板吸收,我需要它们保持分离。

示例:当我将panel2移动到panel1上时,panel2成为panel1的一部分。 然后,当我执行panel1.Hide()panel2.Show() ,panel2仍然是隐藏的,因为它是panel1的一部分。 有没有办法让我取消组合这些或移动panel2到位,而不会自动成为panel1的一部分? (我知道我可以显示隐藏面板内部的控件,但这会增加很多复杂性,因为我有很多控件)

也许有比使用面板更好的解决方案?

您可以使用View + Other Windows + Document Outline工具窗口再次分离这些面板。 将内部面板拖回父级。 然后,您还必须编辑“位置”属性以将其恢复到正确的位置。

这当然很烦人,你必须反复做这件事。 有一个更好的方法,TabControl具有良好的设计时支持,并具有相同的“重叠面板”比喻。 您只需要在运行时隐藏选项卡。 这很容易,在这个答案中检查StackPanel控件。