Articles in this section
Category / Section

How to edit the document tab header via programmatically in WPF DockingManager?

1 min read

WPF DockingManager does not direct option to edit the tab header programmatically. But you can edit the header via programmatically by invoke the internal method “LabelEditStartInternal” of TabLayoutPanel. You are getting and invoke the same using reflection with corresponding tab item as argument to edit. The following code demonstrates the same.

Xaml

<syncfusion:DockingManager Name="docking" UseDocumentContainer="True" EnableDocumentTabHeaderEdit="True" DockFill="True" Grid.Row="1" >
  <!-- Custom Context Menu for editing the Header -->
  <syncfusion:DockingManager.DocumentTabItemContextMenuItems>
    <syncfusion:DocumentTabItemMenuItemCollection>
      <syncfusion:CustomMenuItem Header="Edit Header" x:Name="menu" IsCheckable="False" Click="CustomMenuItem_Click"/>
    </syncfusion:DocumentTabItemMenuItemCollection>
  </syncfusion:DockingManager.DocumentTabItemContextMenuItems>
  <!-- Document Window -->
  <ContentControl syncfusion:DockingManager.Header="Tab1" syncfusion:DockingManager.State="Document"/>
  <ContentControl syncfusion:DockingManager.Header="Tab2" syncfusion:DockingManager.State="Document"/>
  <ContentControl syncfusion:DockingManager.Header="Tab3" syncfusion:DockingManager.State="Document"/>
  <ContentControl syncfusion:DockingManager.Header="Tab4" syncfusion:DockingManager.State="Document"/>
  <ContentControl syncfusion:DockingManager.Header="Tab5" syncfusion:DockingManager.State="Document"/>
</syncfusion:DockingManager>

C#

(docking.DocContainer as DocumentContainer).Loaded += DocumentContainer_Loaded;
 
//Instance
DocumentTabControl tabcontrol;
TabLayoutPanel tab1;
 
private void DocumentContainer_Loaded(object sender, RoutedEventArgs e)
{
 tab1 = VisualUtils.FindDescendant(docking as Visual, typeof(TabLayoutPanel)) as TabLayoutPanel;
 tabcontrol = VisualUtils.FindDescendant(docking as Visual, typeof(DocumentTabControl)) as 
DocumentTabControl;
}
 
private void CustomMenuItem_Click(object sender, RoutedEventArgs e)
{
 //For Edit Header
 MethodInfo method1 = tab1.GetType().GetMethod("LabelEditStartInternal", BindingFlags.NonPublic | BindingFlags.Instance);
 method1.Invoke(tab1, new object[] { tabcontrol.SelectedItem });
}

 

Editing tab item header in WPF DockingManager

View sample in GitHub.

Did you find this information helpful?
Yes
No
Help us improve this page
Please provide feedback or comments
Comments (0)
Please sign in to leave a comment
Access denied
Access denied