Не показывайте частичные объекты в поле списка WPF

Я попробовал Google, и я попробовал Bing напрасно. У кого-либо здесь есть идея о том, как препятствовать тому, чтобы частичные объекты появились в поле списка в WPF? В случае, если это не имеет смысла, вот пример: Поле списка 200 пикселей высотой - каждый объект 35 пикселей высотой. Это означает, что я могу показать 5,7 объектов. 7/10 объекта является нежелательным. Я хотел бы ограничить его показом только 5 объектов. Пользователь мог затем прокрутить для наблюдения дополнительных объектов.

Если я A) пытаюсь динамично измерить поле списка или ScrollViewer ViewPort так, чтобы это соответствовало отлично? Или B) реализую пользовательскую панель, которая не расположила бы дочерний элемент, желаемая высота которого является больше, чем остающееся вертикальное пространство?

Любые мысли значительно ценились бы. В последний раз отметьте: Если бы кто-либо знает о стороннем управлении (поле списка или сетка), который делает это, я интересовался бы этим также.

6
задан viky 30 March 2010 в 16:12
поделиться

4 ответа

Я думал об этом сегодня, так как мой проект боролся с этой проблемой. Мои мысли связаны с моим проектом, но должны быть применимы. Я предполагаю, что MVVM ViewModel, но он будет работать без него.

Привяжите свойство к высоте контейнера, в который находится ListBox, а затем привяжите высоту ListBox к высоте с помощью ValueConverter, чтобы заставить ListBox расширяться или сжиматься поэтапно в зависимости от высоты одного элемента. Это может выглядеть немного забавно при изменение размера, но с короткой анимацией может выглядеть отлично.

1
ответ дан 17 December 2019 в 07:02
поделиться

Просто измените его размер в дизайнере, пока не получите частичную строку. Реализация пользовательской панели - слишком большая работа для чего-то вроде этого.

Вы также можете попробовать ListView вместо ListBox . Возможно, я неправильно это запомнил, но я думаю, что ListView не показывает частичные данные или, возможно, имеет возможность не отображать частичные строки.

1
ответ дан 17 December 2019 в 07:02
поделиться

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

1
ответ дан 17 December 2019 в 07:02
поделиться

Мой голос - пользовательская панель для каждого элемента. Эта панель не отображается, если она не может отображаться полностью. Список может изменять размер по мере необходимости, потому что его единственная задача - быть изменяемым контейнером, который обеспечивает область для панелей. Панели могут увеличиваться и уменьшаться по мере необходимости.

1
ответ дан 17 December 2019 в 07:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: