ItemsControl "Переполнение во всплывающем окне" - PullRequest
3 голосов
/ 15 сентября 2010

У меня есть ItemsControl, который я хочу разместить в небольшом пространстве. Как правило, он отображает менее 3 элементов, однако мне бы хотелось, чтобы он указывал, когда в нем больше элементов, чем он может отображать, и имел бы всплывающее окно на индикаторе для отображения всех элементов (которое все еще будет небольшим). *

Текущий ItemsContainerPanel - это WrapPanel, который, как я надеялся, предоставит функцию типа Ellipsis, такую ​​как TextBlock, но, увы, нет.

У меня проблемы с поиском "количества видимых элементов" для отображения моего индикатора. Кто-нибудь может подсказать, как мне это сделать?

(ItemsControl является частью пользовательского элемента управления, размер которого можно изменить, а ItemsControl изменит размер, как в столбце сетки размера звезды)

Спасибо, Chris

Ответы [ 3 ]

1 голос
/ 20 сентября 2010

Элемент управления ToolBar обладает такой функциональностью, вы, вероятно, можете заменить ControlTemplate панели инструментов на элемент, который не похож на панель инструментов.

0 голосов
/ 16 сентября 2010

Мне нравится решение mdm20, так как оно похоже на правильный способ сделать это, но вы можете получить ширину контейнеров ItemsControl (обычно Border control), затем получить ширину панели переноса и затем ширину панелишаблон элементов, и примените некоторую логику вокруг этой ширины, которую вы только что получили, и ширины вашей границы, и посмотрите, даст ли это то, что вам нужно после?

0 голосов
/ 15 сентября 2010

Я думаю, вам может понадобиться создать собственную панель для этого. Вы можете использовать эту ссылку в качестве шаблона для начала работы. В методе ArrangeOverride необходимо отображать только объекты, которые полностью помещаются в видимую область, а затем иметь некоторую логику для отображения многоточия, если это число меньше общего числа объектов.

...