Silverlight - пространство над / под элементами TreeView - PullRequest
0 голосов
/ 12 мая 2009

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

1 Ответ

2 голосов
/ 12 мая 2009

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

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

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

  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">
        ...
...