在TreeView添加节点后有时后会需要修改节点的名称,这时就需要重命名功能。这里简单实现了右键菜单重命名,效果如下:
1、在TreeView的ItemTemplate中,在原来展示节点名称的位置放一个TextBox,当选择重命名操作时展示,操作完成时隐藏,添加右键按下事件来确定所选择的节点位置。
<TreeView x:Name="treeView" Background="Transparent" MinHeight="280" Width="200"
ScrollViewer.HorizontalScrollBarVisibility="Hidden" ScrollViewer.VerticalScrollBarVisibility="Auto"
MouseDoubleClick="TreeView_MouseDoubleClick" MouseLeftButtonDown="TreeView_MouseLeftButtonDown" MouseRightButtonDown="TreeView_MouseRightButtonDown">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Path=ChildNodes}">
<Grid>
<TextBlock x:Name="showName" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="0,8,0,0" Height="26"
FontSize="{Binding Path=SetFontSize}" FontWeight="{Binding Path=SetFontWeight}" Text="{Binding Path=NodeName, Mode=TwoWay}" />
<TextBox x:Name="reName" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="0,0,0,0" Height="22" Width="120"
FontSize="{Binding Path=SetFontSize}" FontWeight="{Binding Path=SetFontWeight}" Text="{Binding Path=Name, Mode=TwoWay}"
Visibility="Collapsed" LostFocus="ReName_LostFocus"/>
</Grid>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
<TreeView.ContextMenu&