答案並不漂亮,但它是可行的。
您必須覆蓋TreeView
的ItemContainerStyle
,並定義一個控件模板。
http://msdn.microsoft.com/en-us/library/ms788727.aspx
在這個例子中,你將看到TreeViewItem
控制模板有一些XAML這樣的:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition MinWidth="19" Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition/>
</Grid.RowDefinitions>
<ToggleButton x:Name="Expander"
Style="{StaticResource ExpandCollapseToggleStyle}"
IsChecked="{Binding Path=IsExpanded,
RelativeSource={RelativeSource TemplatedParent}}"
ClickMode="Press"/>
<Border Name="Bd"
Grid.Column="1"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
Padding="{TemplateBinding Padding}">
<ContentPresenter x:Name="PART_Header"
ContentSource="Header"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"/>
</Border>
<ItemsPresenter x:Name="ItemsHost"
Grid.Row="1"
Grid.Column="1"
Grid.ColumnSpan="2"/>
</Grid>
這XAML定義瞭如何子項目顯示相對於父項目 - 下ItemsPresenter
你可以插入你的頁腳。
不得不添加樣式選擇器,以便添加按鈕不會出現在葉節點下。否則,完美。謝謝! – PeterM 2011-04-03 14:15:06