我已經設法做出了一些東西,這真的很可笑,但這是我所能想出來的...... 我閱讀了關於ItemPresenter和ControlTemplate,我認爲可以使用它來完成,但是我發現Expander班級有點混亂,特別是因爲我有三級孩子,我無法找到與使Expander爲他們工作有關的東西。 因此,我的解決方案是製作一個模板,其中我創建了一個由兩行組成的網格:第一個網格爲正常高度,第二個爲高度爲1和-160邊距的矩形(以彌補縮進)。
<StackPanel Background="Transparent" Margin="20,20,20,20">
<Border BorderThickness="1" BorderBrush="Gray" Margin="0">
<TreeView Name="treeView" BorderThickness="0" Background="Transparent" Height="400" ScrollViewer.HorizontalScrollBarVisibility="Disabled">
<TreeView.ItemContainerStyle>
<Style TargetType="TreeViewItem">
<Setter Property="IsExpanded" Value="{Binding IsExpanded}" />
</Style>
</TreeView.ItemContainerStyle>
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Children}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="30"/>
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Border Grid.Column="0" Grid.Row="0">
<CheckBox IsChecked="{Binding IsChecked, Mode=TwoWay}" Click="CheckBox_Click" VerticalAlignment="Center">
<TextBlock Text="{Binding Description}" Width="250" Margin="0,0,0,0"/>
</CheckBox>
</Border>
<Rectangle Grid.Row="1" Grid.Column="0" HorizontalAlignment="Stretch" Fill="Gray" Height="1" Margin="-160"/>
</Grid>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
</Border>
你需要編輯模板:這裏是修改https://docs.microsoft.com/en-us/dotnet/framework/wpf/controls/treeview-styles-and-的例子模板 – macieqqq