项目控件“Overflow to Popup”

3
我有一个ItemsControl,想让它适应一个小空间。通常情况下它将显示少于3个项目,然而,我希望它在有更多的项目时指示出来,并在指示器上弹出所有项目的窗口(其中仍将是少量的项目)。
当前的ItemsContainerPanel是WrapPanel,我希望它能提供类似于TextBlock的省略功能,但它并没有。
我无法找到“可见元素数量”以显示我的指示器。有人可以建议我如何做吗?
(ItemsControl是用户控件的一部分,它可以调整大小,而ItemsControl将根据星号大小的网格列进行调整)
谢谢, Chris
3个回答

1

ToolBar控件具有该功能,您可以使用一个不像工具栏的ControlTemplate替换ToolBar的ControlTemplate。


是的,自定义工具栏是最佳选择。我不知道 SL 中是否有工具栏可用。但是,为此创建控件并不是一个好主意。通常,如果 SL 中没有某个功能,则应该有一些可能实现该功能的方法。 - Prince Ashitaka
这种方法对我来说实际上不好用,因为显示项的ToolbarPanel是一个StackPanel而不是WrapPanel,所以无法更改或重新设计。需要使用自定义面板。 - Chris

0

我喜欢mdm20的解决方案,因为它感觉是正确的方法,但你能否获取ItemsControl的容器(通常是一个Border控件)的宽度,然后获取Wrap Panel的宽度和项模板的宽度,然后应用一些逻辑来处理这些刚刚获取的宽度以及你的边框的宽度,并查看是否可以得到你想要的结果?


0

我认为你可能需要创建一个自定义面板来实现这个功能。你可以使用这个链接作为模板开始。在ArrangeOverride方法中,你需要仅显示完全适合可视区域的对象,然后有一些逻辑来显示省略号,如果该计数小于总对象计数。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接