Я хочу реализовать сетку для дерева, где самый правый столбец имеет размер *, а самый левый столбец всегда имеет размер.
Xaml
<TreeView.ItemTemplate>
<HierarchicalDataTemplate DataType="{x:Type model:BaustelleModel}" ItemsSource="{Binding Abschnitte}">
<Grid ShowGridLines="True">
<Grid.ColumnDefinitions>
<ColumnDefinition SharedSizeGroup="A"/>
<ColumnDefinition Width="50"/>
<ColumnDefinition Width="50"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Border Grid.Column="0" BorderThickness="0 0 1 0" BorderBrush="Black">
<Label Content="{Binding Bezeichnung}"/>
</Border>
<Label Grid.Column="1" Background="Red"/>
<Label Grid.Column="2" Background="Green"/>
<Label Grid.Column="3" Background="AliceBlue"/>
</Grid>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
Результат показан на картинке.Тем не менее, я хочу нарисовать границу для каждого узла, как синие линии.Если новый узел добавлен или текст изменен, граница должна выровняться для всех узлов с границей узла, где текст заканчивается в крайнем правом углу.
![enter image description here](https://i.stack.imgur.com/BUwR6.png)
Обновление 1
Итак, я немного повозился с ControlTemplate
.И проблема в том, что ContentPresenter
начинается с отступа в зависимости от его уровня.На рисунке ниже фон ContentPresenter
установлен на красный.Поэтому мне нужен способ, чтобы вычесть "уровень * пространство для отступа" из ширины столбца.
![enter image description here](https://i.stack.imgur.com/iUthd.png)