使用子调整大小逻辑定义仪表板面板

时间:2013-09-23 10:03:02

标签: c# wpf xaml wpf-controls panel

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

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

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

Image mockup on Imgur (25.2KB)

最上面的一个显示一个托管3个元素的面板,它们共享相同的宽度和相同的高度。两个在第一行,第三个利用第二行显示。 如果所有都显示在第一行,它们的宽度会更小。

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

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

然后我看了一下包装纸很好地完成包装,但是要求你设置儿童尺寸才能发挥它的魔力(我可能已经错过了一些东西,但我找不到解决方法)。 / p>

你知道如何在保持我的pannel灵活的同时实现这种行为吗?

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

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

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

感谢您的帮助。

0 个答案:

没有答案