Articles in this section
Category / Section

How to change the caption alignment of dock window in WPF DockingManager?

1 min read

The Caption elements (Header content, CloseButton, AutoHidePin button, MenuButton… etc) of Dock window will be arranged in the DockPanel of DockHeaderPresenter and the FlowDirection will be Left to Right by default in WPF DockingManager. So, the order of the elements will be Header content, MenuButton, AutoHide pin button and CloseButton.

Default arrangement of header elements in Dock Window:

Default arrangement of header element in dock window

This order can be changed by setting the FlowDirection of the DockPanel to Right to Left. The following code example demonstrates the same,

C#

private void UpdateFlowDirectionofHeader(FlowDirection direction)
{
  foreach (FrameworkElement child in DockingManager.Children)
  {
    if (DockingManager.GetDockHeaderPresenter(child) != null)
    {
      // Code to change the Dock window header elements
      DockHeaderPresenter presenter = DockingManager.GetDockHeaderPresenter(child);
      if (presenter != null)
      {
        DockPanel panel = VisualUtils.FindDescendant(presenter as Visual, typeof(DockPanel)) as DockPanel;
        if (panel != null)
        {
          panel.FlowDirection = direction;
        }
      }
    }
    else
    {
      if(DockingManager.GetState(child) == DockState.Document)
      {
        // Code to change the MDI window Header elements
        MDIWindow window = VisualUtils.FindAncestor(child as Visual, typeof(MDIWindow)) as MDIWindow;
        if(window != null)
        {
          DocumentHeader header = window.Template.FindName("PART_DocumentHeader", window) as DocumentHeader;
          if(header != null)
          {
            header.FlowDirection = direction;
          }
        }
      }
    }
  }
}

The following screenshot shows the output of the above code,

Change caption alignment of 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