【问题标题】:WPF RibbonComboBox scroll bar / limit number of itemsWPF RibbonComboBox 滚动条/限制项目数
【发布时间】:2014-06-27 10:11:27
【问题描述】:

我在使用 WPF 中的 RibbonComboBox 时遇到问题。我有一个列表,里面有很多我想添加的项目。有太多项目无法放入窗口,因此您无法看到每个项目。这不会太糟糕,但问题是没有滚动条。我可以用键盘滚动,然后光标消失,直到我到达列表的末尾,然后我又回到了列表的顶部。 有没有办法 a) 有一个滚动条 b) 限制单击下拉按钮时显示的元素数量(我知道它适用于常规组合框)?

我正在使用 Visual Studio 2010。

最好的祝愿 C

【问题讨论】:

  • 尝试在其样式中添加 ScrollViewer。最好作为 ContentControl
  • 我该怎么做呢? :)

标签: c# wpf visual-studio-2010 ribbon


【解决方案1】:

您的要求可以实现,但不幸的是,这将是一个非常痛苦的过程。 RibbonComboBox 没有 ScrollBar 的原因是因为开发它的人做得非常糟糕。显然,默认的ControlTemplate 在内部使用StackPanel,众所周知,这对于这类大小问题完全没有用处。

随着更多项目的添加,StackPanel 只会让ItemsPresenter 无限增长。您可以在 CodePlex 上的 RibbonComboBox does not display a scroll bar when appropriate 页面中找到对此的一些描述。

因此,解决方法是让您在默认值的基础上声明一个新的ControlTemplate,并用链接页面建议的GridDockPanel 替换此StackPanel(尽管我个人认为DockPanel 这个任务可能有点贵)。

那么你如何获得默认的ControlTemplate 来作为你的基础呢?嗯,Microsoft 也通过在 MSDN 上的 Control Styles and Templates 页面中提供它以及所有其他控件来使这变得更加困难。相反,您可以使用 Blend 来查找它,并且可以通过阅读 Jeff Wilcox 网站上的 Blend tip: finding default styles using “Edit a Copy” 页面来获得有关该任务的帮助。

祝你好运。

【讨论】:

  • 哇,这听起来确实很痛苦 :) 非常感谢。现在至少我知道我在哪里。我已经用普通的 ComboBox 进行了尝试,效果很好,所以也许我会坚持使用它(尽管它看起来不太好)。再次感谢
【解决方案2】:

将垂直滚动条的可见性设置为自动:ScrollViewer.VerticalScrollBarVisibility="Auto"

                <RibbonComboBox Name="Types" SelectionBoxWidth="100">
                    <RibbonGallery Name="RibbonCombobox" MaxColumnCount="1" ScrollViewer.VerticalScrollBarVisibility="Auto">
                        <RibbonGalleryCategory Name="UserBox" ItemsSource="{Binding}" >
                            <RibbonGalleryItem IsSelected="True">Item 1</RibbonGalleryItem>
                            <RibbonGalleryItem>Item 2</RibbonGalleryItem>
                            <RibbonGalleryItem>Item 3</RibbonGalleryItem>
                        </RibbonGalleryCategory>
                    </RibbonGallery>
                </RibbonComboBox>

【讨论】:

  • ScrollViewer.VerticalScrollBarVisibility="Auto" 是你的答案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-15
  • 1970-01-01
相关资源
最近更新 更多