我有一个WrapPanel
将包含几个不同的 custom UserControls
。根据情况,我可能需要过滤掉UserControls
可见的内容。我的目标是我可以通过显示/隐藏需要过滤的控件来动态切换哪些控件可见 - 从而将左侧显示的控件移动到面板的左上角。
现在我只是将Visibility
控件的属性设置为Visibility.Collapsed
我不希望它们出现的时候。我以为因为我使用的是WrapPanel
,所以其余的控件会转移到面板的左上角。
相反,在隐藏了一些 之后,仍然UserControls
可见的控件完全保留在它们之前的位置,并且我在仍然显示的控件之间留下了间隙。我已经在Silverlight Spy中打开了我的应用程序,它表明它们实际上仍然存在(这是有道理的),但只是不可见。UserControls
所以我的问题是:
有没有一种方法可以UserControls
在 a中显示/隐藏,WrapPanel
它允许仍然可见 UserControls
的滑动到他们的新位置(全部向左上角移动 - 类似于 a StackPanel
)?
我已经讨论过从(我认为这会起作用)中UserControls
完全删除WrapPanel
它们并将它们存储在内存中,直到需要它们为止。然后,如果我想显示/隐藏其他控件,我会从我的内存对象中获取它们。不过,似乎应该有更好的方法来做到这一点。
如果有人有任何建议或意见,将不胜感激。谢谢!
-劳埃德
更新:
XAML:(非常简单)
<toolkit:WrapPanel x:Name="MyLayout" Height="300" HorizontalAlignment="Left" VerticalAlignment="Top" Width="400" />
代码隐藏:用户控件正在动态添加:
MyLayout.Children.Add(oUserControl)
它们也被设置为动态折叠:
oUserControl.Visibility = Visibility.Collapsed