[Expand]General Information
[Expand]WinForms Controls
[Expand]ASP.NET Controls and MVC Extensions
[Expand]ASP.NET Bootstrap Controls
[Expand]ASP.NET Core Bootstrap Controls
[Collapse]WPF Controls
  Prerequisites
 [Expand]What's Installed
 [Expand]Common Concepts
 [Expand]MVVM Framework
 [Expand]Controls and Libraries
 [Expand]Scaffolding Wizard
 [Expand]Localization
  Redistribution and Deployment
  Get More Help
 [Collapse]API Reference
  [Expand]DevExpress.Charts.Designer
  [Expand]DevExpress.DashboardWpf
  [Expand]DevExpress.Data
  [Expand]DevExpress.Mvvm.UI
  [Expand]DevExpress.Mvvm.UI.Interactivity
  [Expand]DevExpress.Mvvm.UI.ModuleInjection
  [Expand]DevExpress.Xpf.Accordion
  [Collapse]DevExpress.Xpf.Bars
   [Expand]AddBarAction Class
   [Expand]AddBarItemAction Class
   [Expand]AddBarItemLinkAction Class
   [Expand]Bar Class
   [Expand]BarActionBase Class
   [Expand]BarButtonItem Class
   [Expand]BarButtonItemLink Class
   [Expand]BarCheckItem Class
   [Expand]BarCheckItemLink Class
   [Expand]BarCollection Class
   [Collapse]BarContainerControl Class
     BarContainerControl Members
     BarContainerControl Constructor
    [Expand]BarContainerControl Properties
    [Expand]BarContainerControl Methods
    BarContainerType Enumeration
   [Expand]BarDockInfo Class
   [Expand]BarEditItem Class
   [Expand]BarEditItemLink Class
   [Expand]BarItem Class
   [Expand]BarItemActionBase Class
    BarItemAlignment Enumeration
    BarItemAutoSizeMode Enumeration
   [Expand]BarItemCollection Class
    BarItemDisplayMode Enumeration
   [Expand]BarItemLink Class
   [Expand]BarItemLinkActionBase Class
   [Expand]BarItemLinkBase Class
   [Expand]BarItemLinkCollection Class
   [Expand]BarItemLinkHolderBase Class
   [Expand]BarItemLinkMenuHeader Class
   [Expand]BarItemLinkSeparator Class
   [Expand]BarItemMenuHeader Class
    BarItemMergeType Enumeration
   [Expand]BarItemSeparator Class
   [Expand]BarLinkContainerItem Class
   [Expand]BarLinkContainerItemLink Class
   [Expand]BarListItem Class
   [Expand]BarListItemLink Class
   [Expand]BarManager Class
   [Expand]BarManagerActionCollection Class
   [Expand]BarManagerActionContainer Class
   [Expand]BarManagerCategory Class
   [Expand]BarManagerCategoryCollection Class
   [Expand]BarManagerController Class
   [Expand]BarManagerControllerActionBase Class
   [Expand]BarManagerControllerBase Class
   [Expand]BarNameScope Class
   [Expand]BarPopupBase Class
   [Expand]BarsLocalizer Class
   [Expand]BarSplitButtonItem Class
   [Expand]BarSplitButtonItemLink Class
   [Expand]BarSplitCheckItem Class
   [Expand]BarSplitCheckItemLink Class
   [Expand]BarStaticItem Class
   [Expand]BarStaticItemLink Class
   [Expand]BarSubItem Class
   [Expand]BarSubItemLink Class
    ButtonSwitcher Enumeration
   [Expand]CreateStandardLayoutAction Class
    ElementMergingBehavior Enumeration
   [Expand]Gallery Class
    GalleryCheckDrawMode Enumeration
   [Expand]GalleryControl Class
   [Expand]GalleryItem Class
    GalleryItemCheckMode Enumeration
   [Expand]GalleryItemCollection Class
   [Expand]GalleryItemGroup Class
   [Expand]GalleryItemGroupCollection Class
    GallerySizeMode Enumeration
    GlyphSize Enumeration
   [Expand]IControllerAction Interface
   [Expand]ILinksHolder Interface
   [Expand]InsertAction Class
   [Expand]InsertBarAction Class
   [Expand]InsertBarItemAction Class
   [Expand]InsertBarItemLinkAction Class
   [Expand]InsertMainMenuIfNotExistAction Class
   [Expand]InsertStatusBarIfNotExistAction Class
   [Expand]ItemClickEventArgs Class
    ItemClickEventHandler Delegate
    ItemLinksHolderType Enumeration
   [Expand]LayoutUpgradingEventArgs Class
    LayoutUpgradingEventHandler Delegate
   [Expand]LinkListItem Class
   [Expand]LinkListItemLink Class
   [Expand]MainMenuControl Class
    MDIMergeStyle Enumeration
   [Expand]MergingProperties Class
   [Expand]PopupControlContainer Class
   [Expand]PopupControlContainerInfo Class
   [Expand]PopupInfo<PopupType> Class
   [Expand]PopupMenu Class
   [Expand]PopupMenuBase Class
   [Expand]PopupMenuInfo Class
    PopupMenuItemsDisplayMode Enumeration
   [Expand]RadialContextMenu Class
   [Expand]RemoveAction Class
   [Expand]RemoveBarAction Class
   [Expand]RemoveBarItemAction Class
   [Expand]RemoveBarItemAndLinkAction Class
   [Expand]RemoveBarItemLinkAction Class
   [Expand]ReplaceAction Class
    RibbonItemStyles Enumeration
   [Expand]SetBarAction Class
   [Expand]SetBarItemAction Class
   [Expand]SetBarItemLinkAction Class
   [Expand]StatusBarControl Class
   [Expand]TemplatedBarManagerController Class
   [Expand]ToolBarControl Class
   [Expand]ToolBarControlBase Class
   [Expand]ToolbarListItem Class
   [Expand]ToolbarListItemLink Class
    ToolbarListItemType Enumeration
    ToolBarMergeStyle Enumeration
   [Expand]UpdateAction Class
   [Expand]UpdateBarAction Class
   [Expand]UpdateBarItemAction Class
   [Expand]UpdateBarItemLinkAction Class
   [Expand]UpdateBarItemLinkActionBase Class
  [Expand]DevExpress.Xpf.Carousel
  [Expand]DevExpress.Xpf.Charts
  [Expand]DevExpress.Xpf.Charts.Localization
  [Expand]DevExpress.Xpf.Charts.RangeControlClient
  [Expand]DevExpress.Xpf.ChunkList
  [Expand]DevExpress.Xpf.Controls
  [Expand]DevExpress.Xpf.Core
  [Expand]DevExpress.Xpf.Core.ConditionalFormatting
  [Expand]DevExpress.Xpf.Core.DataSources
  [Expand]DevExpress.Xpf.Core.FilteringUI
  [Expand]DevExpress.Xpf.Core.ServerMode
  [Expand]DevExpress.Xpf.Data
  [Expand]DevExpress.Xpf.DataAccess
  [Expand]DevExpress.Xpf.DataAccess.DataSourceWizard
  [Expand]DevExpress.Xpf.Diagram
  [Expand]DevExpress.Xpf.Dialogs
  [Expand]DevExpress.Xpf.Docking
  [Expand]DevExpress.Xpf.Docking.Base
  [Expand]DevExpress.Xpf.DocumentViewer
  [Expand]DevExpress.Xpf.DXBinding
  [Expand]DevExpress.Xpf.Editors
  [Expand]DevExpress.Xpf.Editors.DataPager
  [Expand]DevExpress.Xpf.Editors.DateNavigator
  [Expand]DevExpress.Xpf.Editors.ExpressionEditor
  [Expand]DevExpress.Xpf.Editors.ExpressionEditor.Native
  [Expand]DevExpress.Xpf.Editors.Filtering
  [Expand]DevExpress.Xpf.Editors.Flyout
  [Expand]DevExpress.Xpf.Editors.Flyout.Native
  [Expand]DevExpress.Xpf.Editors.Helpers
  [Expand]DevExpress.Xpf.Editors.Native
  [Expand]DevExpress.Xpf.Editors.Popups
  [Expand]DevExpress.Xpf.Editors.RangeControl
  [Expand]DevExpress.Xpf.Editors.Settings
  [Expand]DevExpress.Xpf.Editors.Validation
  [Expand]DevExpress.Xpf.ExpressionEditor
  [Expand]DevExpress.Xpf.Gauges
  [Expand]DevExpress.Xpf.Gauges.Localization
  [Expand]DevExpress.Xpf.Grid
  [Expand]DevExpress.Xpf.Grid.ConditionalFormatting
  [Expand]DevExpress.Xpf.Grid.LookUp
  [Expand]DevExpress.Xpf.Grid.TreeList
  [Expand]DevExpress.Xpf.Layout.Core
  [Expand]DevExpress.Xpf.LayoutControl
  [Expand]DevExpress.Xpf.Map
  [Expand]DevExpress.Xpf.NavBar
  [Expand]DevExpress.Xpf.Navigation
  [Expand]DevExpress.Xpf.PdfViewer
  [Expand]DevExpress.Xpf.PivotGrid
  [Expand]DevExpress.Xpf.PivotGrid.Printing
  [Expand]DevExpress.Xpf.Printing
  [Expand]DevExpress.Xpf.Printing.Parameters
  [Expand]DevExpress.Xpf.Printing.Parameters.Models
  [Expand]DevExpress.Xpf.Printing.PreviewControl
  [Expand]DevExpress.Xpf.Printing.PreviewControl.Bars
  [Expand]DevExpress.Xpf.Prism
  [Expand]DevExpress.Xpf.PropertyGrid
  [Expand]DevExpress.Xpf.Reports.UserDesigner
  [Expand]DevExpress.Xpf.Reports.UserDesigner.Extensions
  [Expand]DevExpress.Xpf.Reports.UserDesigner.Localization
  [Expand]DevExpress.Xpf.Reports.UserDesigner.ReportWizard
  [Expand]DevExpress.Xpf.Reports.UserDesigner.ReportWizard.Pages
  [Expand]DevExpress.Xpf.Ribbon
  [Expand]DevExpress.Xpf.RichEdit
  [Expand]DevExpress.Xpf.RichEdit.Menu
  [Expand]DevExpress.Xpf.Scheduler
  [Expand]DevExpress.Xpf.Scheduler.Drawing
  [Expand]DevExpress.Xpf.Scheduler.Menu
  [Expand]DevExpress.Xpf.Scheduler.Reporting
  [Expand]DevExpress.Xpf.Scheduler.UI
  [Expand]DevExpress.Xpf.Scheduling
  [Expand]DevExpress.Xpf.Scheduling.Editors
  [Expand]DevExpress.Xpf.Scheduling.Reporting
  [Expand]DevExpress.Xpf.Scheduling.Visual
  [Expand]DevExpress.Xpf.Scheduling.VisualData
  [Expand]DevExpress.Xpf.SpellChecker
  [Expand]DevExpress.Xpf.Spreadsheet
  [Expand]DevExpress.Xpf.Spreadsheet.Menu
  [Expand]DevExpress.Xpf.TreeMap
  [Expand]DevExpress.Xpf.Utils.Themes
  [Expand]DevExpress.Xpf.WindowsUI
  [Expand]DevExpress.Xpf.WindowsUI.Internal
  [Expand]DevExpress.Xpf.WindowsUI.Navigation
  [Expand]DevExpress.XtraRichEdit
  [Expand]DevExpress.XtraRichEdit.Printing
[Expand]Xamarin Controls
[Expand]Windows 10 App Controls
[Expand]Office File API
[Expand]Reporting
[Expand]Report and Dashboard Server
[Expand]Dashboard
[Expand]eXpressApp Framework
[Expand]eXpress Persistent Objects
[Expand]CodeRush
[Expand]CodeRush Classic
[Expand]Cross-Platform Core Libraries
[Expand]Tools and Utilities
 End-User Documentation
View this topic on docs.devexpress.com (Learn more)

BarContainerControl Class

A container for bars (Bar, ToolBarControl, MainMenuControl and StatusBarControl objects).

Namespace:DevExpress.Xpf.Bars
Assembly:DevExpress.Xpf.Core.v18.2.dll

Expanded Syntax

Expanded Remarks

For a Bar object to be displayed, it needs to be placed in a BarContainerControl or it needs to be associated with a BarContainerControl (more information is provided below). Unlike the Bar object, the ToolBarControl, MainMenuControl and StatusBarControl can used as standalone controls, without the need to use the BarContainerControl. You can place multiple Bar, ToolBarControl, MainMenuControl or StatusBarControl objects into a BarContainerControl to arrange these toolbars next to each other.

At runtime, an end-user can move bars between bar containers using drag-and-drop.

When using the BarManager control, the BarManager.CreateStandardLayout option is set to true by default. In this mode, four bar containers are implicitly created at the four edges of the BarManager, allowing bars to be docked at these positions. If the BarManager.CreateStandardLayout option is disabled, no bar containers are implicitly created.

Besides the four default bar containers, you can manually create any number of bar containers, and freely position them within the window.

You can associate a Bar with a bar container using one of the following methods:

  • Setting the Bar.DockInfo.ContainerType (BarDockInfo.ContainerType) property to the type of the required bar container (this property matches the container's ContainerType property).

    When bar containers are created implicitly (the BarManager.CreateStandardLayout property is set to true), you can only associate bars with a corresponding bar container via the ContainerType property.

    If you want to create a floating bar, set the Bar.DockInfo.ContainerType property to BarContainerType.Floating. There is no need to manually create floating bar containers.

  • Setting the Bar.DockInfo.Container (BarDockInfo.Container) property to the required bar container.

    This option is in effect when bar containers are created manually.

  • Setting the Bar.DockInfo.ContainerName (BarDockInfo.ContainerName) property to the name of the required bar container.

    This option is in effect when bar containers are created manually.

Expanded Example

This example creates five bars docked at different positions in the window. To allow end-users to drag-and-drop bars to a specific position at runtime, a BarContainerControl is placed at this position.

Expanded Example

This example shows how to create three bars (File, Edit and StatusBar) using the MainMenuControl, ToolBarControl and StatusBarControl controls. In this example, the BarContainerControl is used to activate the Drag & Drop functionality for bars. Actions for bar elements are defined by commands implemented in the MyViewModel class.   The window's DataContext is set to a MyViewModel class descendant, which is automatically generated by the DevExpress.Mvvm.POCO.ViewModelSource object. This descendant automatically generates commands for all public methods in the MyViewModel class (the OpenFileCommand, NewFileCommand and SetAlignmentCommand are generated).

The result is shown below:

Expanded Example

This example shows how to get and focus an editor embedded into a bar.In the example bars are added to BarContainers that are automatically created by setting the BarManager.CreateStandardLayout property to True.

Expanded Example

This example shows how to manually create different types of bar containers: 1) A bar container used to display bars at the top of the window, 2) A float bar container (it's created automatically when setting the Bar.DockInfo.ContainerType property to Floating), 3) A standalone bar container that can be freely positioned within the window.

The following image shows the result:

Expanded Inheritance Hierarchy

System.Object
    System.Windows.Threading.DispatcherObject
       System.Windows.DependencyObject
          System.Windows.Media.Visual
             System.Windows.UIElement
                System.Windows.FrameworkElement
                   System.Windows.Controls.Control
                      System.Windows.Controls.ItemsControl
                         DevExpress.Xpf.Bars.BarItemsControl
                            BarContainerControl

Expanded See Also

Is this topic helpful?​​​​​​​