Silverlight — пространство над/под элементами TreeView

Я пытаюсь уменьшить пространство между элементами TreeView, чтобы они больше подходили по вертикали. Я предполагаю, что это вопрос стилизации шаблона ItemContainer Style или ItemContainer в TreeView, но я не могу найти правильные свойства. Может кто-то указать мне верное направление?


person Steve Brouillard    schedule 12.05.2009    source источник


Ответы (1)


Вы правы, вам нужно изменить ItemContainerStyle элемента управления TreeView.

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

Вы можете форсировать это, выполнив одно из двух действий:

  1. Уменьшите размер содержимого каждого элемента, изменив ItemTemplate TreeView.
  2. Инвертируйте поле в сетке внутри шаблона управления 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
comment
Большое спасибо. Это поставило меня на бейсбольный стадион. - person Steve Brouillard; 12.05.2009
comment
этот ответ неверен (по крайней мере, в Silverlight 5 TreeView). Потому что элементы начинают перекрываться, когда вы детализируете уровни. На уровне 3 элемент уже переходит под следующий элемент уровня 2... - person Boppity Bop; 12.04.2013