【问题标题】:How do I make a multiple stacks of controls (columns) scrollable?如何使多个控件(列)堆栈可滚动?
【发布时间】:2011-03-10 16:36:52
【问题描述】:

所以我是使用 WPF 的新手,不知道如何用一种简单的方法来创建可以轻松添加/减去的多列控件并且仍然可以滚动。因此,例如(我的情况),无论有多少“项目”,我都有两个文本框和一个按钮。我希望将它们放在一个 3 列布局中,并使用相同的滚动条滚动。

最好的情况是多个堆栈面板(在我的情况下为 3)填充了任意数量的控件,它们都使用相同的滚动条滚动。由于这似乎不起作用,我该怎么做?

非常感谢,无论我的问题多么愚蠢,你们总是乐于助人。

【问题讨论】:

  • 标题中不需要 [WPF] 标签。

标签: c# wpf layout wpf-controls


【解决方案1】:

我认为WrapPanel 是您想要的。

我找到了this tutorial,它简洁地解释了它的用法。如果您设置Orientation="Vertical",它应该按照您的意愿进行布局。

Panels MSDN 页面提供了有关不同面板以及如何使用它们的更多信息。 WrapPanel 页面是here

【讨论】:

    【解决方案2】:
    <ScrollViewer ...>
      <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition/>
            <ColumnDefinition/>
            <ColumnDefinition/>
        </Grid.ColumnDefinitions>
        <StackPanel Grid.Column="0" ...>
           ...
        </StackPanel>
        <StackPanel Grid.Column="1" ...>
           ...
        </StackPanel>
        <StackPanel Grid.Column="2" ...>
           ...
        </StackPanel>
      </Grid>
    </ScrollViewer>
    

    【讨论】:

    • 我正在尝试,但 Grid 不会根据堆栈面板的大小调整它的高度。有什么建议吗?
    • 我已经对其进行了测试,它的工作原理正如您所描述的那样,您需要它。也许你设置了网格的高度?还是 StackPanel 的那个?
    【解决方案3】:

    您是否尝试过将所有三个 StackPanel 放入 ScrollViewer

    【讨论】:

    • 我以为你只能在滚动查看器中放置一个控件。我弄错了吗?
    • @SirDinosaur - 我认为您需要将它们放在另一个容器中,但这当然是可能的。
    • 我只需要找出最适合的容器。最坏的情况我会用 WrapPanel 来做,这很好,但我宁愿有一个更好的解决方案。
    猜你喜欢
    • 2021-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多