【问题标题】:Creating a Scrollable StackPanel Control创建可滚动的 StackPanel 控件
【发布时间】:2011-01-23 22:46:38
【问题描述】:

如何创建类似于this site 示例的控件作为用户控件?

所以,不要这样做:

<ScrollViewer>
    <StackPanel>
        <!– Content –>
    </StackPanel>
</ScrollViewer>

我可以这样做:

<ScrollableStackPanel>
    <!– Content –>
</ScrollableStackPanel>

【问题讨论】:

    标签: c# wpf visual-studio visual-studio-2008 xaml


    【解决方案1】:

    不幸的是,在 WPF 中作为 UserControl 无法做到这一点。您需要基于ItemsControl 制作自定义控件(而不是用户控件)。它可以正确处理。

    话虽如此,我认为这没有什么意义。将您的 StackPanel 放入 ScrollViewer 非常容易 - 为什么要重新发明轮子?

    【讨论】:

    • 我正在尝试制作一种可滚动的 StackPanel,它的项目是 Drag n Droppable
    • 为什么不在 ScrollViewer 中使用 ListBox 或 StackPanel?否则,您需要制作一个自定义控件 - 您不能让用户控件成为 ItemsControl(它可以让您拥有多个“内容”元素)...
    • 里德是对的。这是 WPF 分离控件的视觉和行为方面的全部要点。您不会通过查看它们来知道,但 TabControl 和 ListBox 几乎是完全相同的控件,都源自 Selector。您应该考虑替换 ListBox 的样式和/或 ItemTemplate。
    【解决方案2】:

    看起来您只需要使用一个 ListBox。如果需要,您可以覆盖 ItemContainterStyle 和 ListBox.Style 以摆脱所有 Selected 行为和背景。因为 ListBox 默认有 StackPanel 和 ScrollViewer。

    【讨论】:

      猜你喜欢
      • 2017-02-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多