Я попробовал Google, и я попробовал Bing напрасно. У кого-либо здесь есть идея о том, как препятствовать тому, чтобы частичные объекты появились в поле списка в WPF? В случае, если это не имеет смысла, вот пример: Поле списка 200 пикселей высотой - каждый объект 35 пикселей высотой. Это означает, что я могу показать 5,7 объектов. 7/10 объекта является нежелательным. Я хотел бы ограничить его показом только 5 объектов. Пользователь мог затем прокрутить для наблюдения дополнительных объектов.
Если я A) пытаюсь динамично измерить поле списка или ScrollViewer ViewPort так, чтобы это соответствовало отлично? Или B) реализую пользовательскую панель, которая не расположила бы дочерний элемент, желаемая высота которого является больше, чем остающееся вертикальное пространство?
Любые мысли значительно ценились бы. В последний раз отметьте: Если бы кто-либо знает о стороннем управлении (поле списка или сетка), который делает это, я интересовался бы этим также.
Я думал об этом сегодня, так как мой проект боролся с этой проблемой. Мои мысли связаны с моим проектом, но должны быть применимы. Я предполагаю, что MVVM ViewModel, но он будет работать без него.
Привяжите свойство к высоте контейнера, в который находится ListBox, а затем привяжите высоту ListBox к высоте с помощью ValueConverter, чтобы заставить ListBox расширяться или сжиматься поэтапно в зависимости от высоты одного элемента. Это может выглядеть немного забавно при изменение размера, но с короткой анимацией может выглядеть отлично.
Просто измените его размер в дизайнере, пока не получите частичную строку. Реализация пользовательской панели - слишком большая работа для чего-то вроде этого.
Вы также можете попробовать ListView
вместо ListBox
. Возможно, я неправильно это запомнил, но я думаю, что ListView
не показывает частичные данные или, возможно, имеет возможность не отображать частичные строки.
вы можете добиться этого, определив фактическую высоту содержимое списка в диспетчере и отрегулируйте высоту списка, но это приведет к увеличению или уменьшению размера списка в зависимости от реализации.
Мой голос - пользовательская панель для каждого элемента. Эта панель не отображается, если она не может отображаться полностью. Список может изменять размер по мере необходимости, потому что его единственная задача - быть изменяемым контейнером, который обеспечивает область для панелей. Панели могут увеличиваться и уменьшаться по мере необходимости.