一旦它“满”,停止在Wrap面板中加载控件

时间:2012-03-23 02:41:24

标签: wpf wrappanel

在我之前的一个应用程序中,我需要动态地将控件添加到winforms项目中的flowlayoutpanel,但我需要它们在面板中没有更多空间时停止加载。

为实现这一目标,我写道:https://github.com/LucasMoffitt/WordFiller/blob/master/WordFiller.Controls/WordLayoutPanel.cs

如果入站控件触及我在面板底部绘制的矩形,这基本上只是将属性设置为false。

尝试在WPF中复制此行为时,我无法找到任何方法可以强制WrapPanel停止接收控件(如果已满)。

我试图覆盖排列和测量方法,但只有在添加了所有控件后才会调用它们。我需要能够阻止控件被加载。

有人有什么想法吗?

2 个答案:

答案 0 :(得分:0)

您可以针对ActualHeight / AcxtualWidth检查DesiredHeight / DesiredWidth。当DesiredHeight变得大于ActualHeight时,小组开始重叠。

答案 1 :(得分:0)

所以我最终接受了一些建议并达成了这个:

https://github.com/LucasMoffitt/CustomWrapPanel

基本上我正在做的只是稍微整洁,并有一个演示应用程序。

如果有人找到更好的方法,我鼓励所有的贡献!