【问题标题】:Multiple column scrolling, resizeable panel?多列滚动,可调整大小的面板?
【发布时间】:2009-11-25 04:47:09
【问题描述】:

我有这个:

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

如果我将 WrapPanelWidthHeight 设置为固定数字,但我希望它在用户调整窗口大小时改变。

【问题讨论】:

  • 也许您应该简单地将主要 WrapPanel 方向更改为水平?然后项目将不是从上到下列出,而是从左到右列出。但一切看起来都非常相似。
  • 如果你真的想保持原样,那么,我认为,唯一的选择就是创建你自己的 WrapPanel 版本

标签: c# wpf scroll scrollviewer wrappanel


【解决方案1】:

在您的示例屏幕截图和描述中,我看到一个选项卡控件,其锚点设置为上、左、下和右。 AutoScroll 设置为 true 的标签页。在标签页中,我看到了 FlowLayoutPanel。 FlowLayoutPanel 的 AutoSize 属性设置为 true。我还看到了一组其他面板/用户控件,每个面板/用户控件都包含一个标题和一系列复选框。

【讨论】:

  • 你是说我应该这样做吗?
  • 它会给你一个相似的外观。我没有调整所有设置以确保它看起来 100% 像它,但这会让你达到 90%。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-27
    • 1970-01-01
    • 1970-01-01
    • 2016-10-25
    • 2012-05-20
    • 2016-01-14
    相关资源
    最近更新 更多