多列滚动,可调整大小的面板?

时间:2009-11-25 04:47:09

标签: c# wpf scroll scrollviewer wrappanel

我有这个:

scrollable panel

每个列表都是自己的WrapPanel,它们都位于WrapPanel中的另一个ScrollViewer上。如果我没有为主WrapPanel设置自己的高度,它假设我希望WrapPanel尽可能高,只能给我一列,而我想要尽可能多的列来填充窗口

如果我将保留所有内容的Width的{​​{1}}和Height设置为固定数字,但我希望在用户调整窗口大小时进行更改。

2 个答案:

答案 0 :(得分:0)

在你的示例屏幕截图和描述中,我看到一个标签控件,其锚点设置为Top,Left,Bottom和Right。 AutoScroll的标签页设置为true。在标签页中,我看到了一个FlowLayoutPanel。 FlowLayoutPanel的AutoSize属性设置为true。我还看到一组其他面板/用户控件,每个控件包含一个标题和一系列复选框。

答案 1 :(得分:0)

您无法通过标准控件实现此目的。您可以尝试创建自己的自定义WrapPanel实现。但是,实际上,看看原始的WrapPanel来源,我认为这将非常棘手。你看,你想要的,基本上是测量当前窗口中可以容纳多少列,而列中的每个元素可以是任何大小。我看到该算法的方式,需要N * N次迭代才能得到最终结果。所以你可能会遇到性能问题。