ItemsControl“溢出弹出”

时间:2010-09-15 09:57:31

标签: c# wpf silverlight wpf-controls itemscontrol

我有一个ItemsControl,我想要适应一个小空间。通常情况下它会显示少于3个项目,但是,我希望它能指示何时它有多于它可以显示的项目,并在指示器上弹出一个以显示所有项目(这仍然是一个小数量)。

当前的ItemsContainerPanel是一个WrapPanel,我希望它能提供像TextBlock这样的省略号类型函数,但是它没有。

我无法找到“可见元素数量”来显示我的指标。任何人都可以就我如何做到这一点提出建议吗?

(ItemsControl是可以调整大小的用户控件的一部分,ItemsControl将调整大小,因为它在星号网格列中)

谢谢, 克里斯

3 个答案:

答案 0 :(得分:1)

ToolBar控件具有该功能,您可以将ToolBar的ControlTemplate替换为看起来不像工具栏的那个。

答案 1 :(得分:0)

我认为您可能需要创建一个自定义面板来执行此操作。您可以使用此link作为模板开始使用。在ArrangeOverride方法中,您只想显示完全适合可视区域的对象,然后有一些逻辑来显示省略号(如果该计数小于总对象数)。

答案 2 :(得分:0)

我喜欢mdm20的解决方案,因为感觉这是正确的方法,但你能获得ItemsControl的容器(通常是边框控件)宽度,然后获得包装面板的宽度然后宽度项目模板,并在你刚刚获得的这些宽度和边框的宽度周围应用一些逻辑,看看是否能为你提供后续的东西?