Я пытаюсь уменьшить пространство между элементами TreeView, чтобы они больше подходили по вертикали. Я предполагаю, что это вопрос стилизации шаблона ItemContainer Style или ItemContainer в TreeView, но я не могу найти правильные свойства. Может кто-то указать мне верное направление?
Silverlight — пространство над/под элементами TreeView
Ответы (1)
Вы правы, вам нужно изменить ItemContainerStyle элемента управления TreeView.
Для всех контейнеров в шаблоне элемента управления стиля TreeViewItem по умолчанию задано значение «авто» и они растягиваются, чтобы занимать столько места по вертикали, сколько необходимо содержимому элемента.
Вы можете форсировать это, выполнив одно из двух действий:
- Уменьшите размер содержимого каждого элемента, изменив ItemTemplate TreeView.
- Инвертируйте поле в сетке внутри шаблона управления TreeViewItem по умолчанию.
Ниже приведен отрывок из нового шаблона элемента управления, который я создал для TreeViewItem. Обратите внимание, как я установил Margin на «0,-4,0,-4». Это говорит о том, что контент должен занимать на 4 пикселя меньше сверху и снизу элемента, тем самым уменьшая вертикальную площадь каждого элемента.
<ControlTemplate TargetType="controls:TreeViewItem">
<Grid Background="{x:Null}" Margin="0,-4,0,-4">
...
person
markti
schedule
12.05.2009
Большое спасибо. Это поставило меня на бейсбольный стадион.
- person Steve Brouillard; 12.05.2009
этот ответ неверен (по крайней мере, в Silverlight 5 TreeView). Потому что элементы начинают перекрываться, когда вы детализируете уровни. На уровне 3 элемент уже переходит под следующий элемент уровня 2...
- person Boppity Bop; 12.04.2013