Вы правы, вам нужно изменить ItemContainerStyle элемента управления TreeView.
Все контейнеры в шаблоне элемента управления стиля TreeViewItem по умолчанию установлены на «auto» и растягиваются, чтобы использовать столько вертикального пространства, сколько требуется для содержимого элемента.
Вы можете форсировать это, выполнив одно из двух действий:
- Уменьшите размер содержимого каждого элемента, изменив ItemTemplate TreeView
- Инвертировать поля в сетке внутри шаблона элемента управления TreeViewItem по умолчанию.
Ниже приведена выдержка из нового шаблона элемента управления, который я создал для TreeViewItem. Обратите внимание, как я установил Margin равным «0, -4,0, -4». Это заставляет контент занимать на 4 пикселя меньше сверху и снизу элемента, тем самым уменьшая вертикальную площадь каждого элемента.
<ControlTemplate TargetType="controls:TreeViewItem">
<Grid Background="{x:Null}" Margin="0,-4,0,-4">
...