1

我正在尝试在 WPF 中编写一个 XAML UI,其中主窗口容器(面板)将承载子级。

棘手的部分是我希望孩子们在窗口调整大小时调整大小(例如,当它在屏幕上最大化时)并且我希望他们占据最大可用空间而不拉伸。但与此同时,我希望尽可能让它们像包裹板一样包裹起来。

我设计了一个快速模型以便于理解。

Imgur 上的图像模型 (25.2KB)

顶部显示了一个面板,其中包含 3 个元素,它们都具有相同的宽度和相同的高度。两个在第一行,第三个利用第二行显示。如果全部都显示在第一行,它们的宽度会更小。

底部显示了一个面板,其中包含 8 个元素,它们都具有相同的宽度和相同的高度(比第一个模型小,因此它们可以放在一个屏幕中)。前两行各有 3 个元素,而最后一行只有 2 个。

我最初的想法是使用 Stackpanel,但它们会拉伸您的子元素,据我所知,它们不允许根据元素的数量动态调整子元素的大小。

然后我看了一下 wrappanel,它可以很好地进行包装,但需要你设置孩子的大小才能发挥它的魔力(我可能错过了一些东西,但我找不到解决方法)。

您知道如何在保持面板灵活的同时实现此行为吗?

将要使用它的应用程序将根据用户的设置将不同数量的子项放入面板中。

啊,我忘了说显然不应该有垂直滚动,一切都应该像仪表板一样放在一个屏幕上。这就是这个面板的重点,确保一切都合适,但显示得尽可能大,没有失真。

如果您有任何问题,请询问。

谢谢您的帮助。

4

0 回答 0