DotNetBar for WPF 5.9 and later includes support for creating Office 2010 style Backstage application menu. Following image shows what Backstage application menu looks like:


Start by adding Ribbon control to your Window if you do not already have Ribbon added. Make sure that your project is targeting at least .NET Framework 3.5 otherwise VS.NET 2010 will not load designers properly:

You will need to clean up the XAML so Margin, Width and Height settings are removed. You should also set HorizontalAlignment=”Stretch” on Ribbon.

Now click the Application Menu button to select it:

Which will show the Application Menu design-time button. Click it to open command menu:

Then click Setup Backstage and DotNetBar designer will setup the Backstage Application menu with all defaults:

This is default Backstage control setup with sample data. You can go ahead and change XAML to fit your application.

On selected Backstage tab panel above, you can see the Blue background that is located in bottom-right corner. We provide 4 pre-defined backgrounds that you can change by setting PanelBackground property on each BackstageTab. Valid values are: Blue, Orange, Magenta, Green and None. Application menu also receives 4 predefined colors that you can select using Color property. They visually match Backstage background colors.

Here is complete XAML for the default Backstage tab:

<my:ApplicationMenu Color="Magenta" Header="File">
<my:ApplicationMenu.BackstageTab>
<my:Backstage TextOptions.TextFormattingMode="Display">
<my:ButtonDropDown Header="Save" my:Ribbon.KeyTip="S" />
<my:ButtonDropDown Header="Save As" my:Ribbon.KeyTip="A" />
<my:BackstageTab Header="Info" my:Ribbon.KeyTip="I">
<Grid>
<Label Content="Your content goes here..." HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>
</my:BackstageTab>
<my:BackstageTab Header="Recent" PanelBackground="Orange" my:Ribbon.KeyTip="R">
<Grid>
<Label Content="Your content goes here..." HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>
</my:BackstageTab>
<my:BackstageTab Header="New" PanelBackground="Green" my:Ribbon.KeyTip="N">
<Grid>
<Label Content="Your content goes here..." HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>
</my:BackstageTab>
<my:ButtonDropDown Header="Options" my:Ribbon.KeyTip="O" StaysOpenOnClick="False" />
<my:ButtonDropDown Header="Exit" my:Ribbon.KeyTip="X" StaysOpenOnClick="False" />
</my:Backstage>
</my:ApplicationMenu.BackstageTab>
</my:ApplicationMenu>

When BackstageTab property is set any items in Items collection of ApplicationMenu you already have will not be displayed on popup. You may keep them in case you want to have both standard application menu and Backstage. When BackstageTab property is set you can use ApplicationMenu.BackstageEnabled property to disable usage of Backstage so control displays standard popup menu from Items collection.

While Backstage popup is open you can close it from code using ApplicationMenu.IsPopupOpen property.

Related posts:

  1. How to create Backstage application menu in DotNetBar for WPF Ribbon Control
  2. How To Start Using Wpf-Ribbon Control
  3. How to implement Live Preview using DotNetBar for WPF
  4. How to disable run-time customization for buttons
  5. How to change WPF Office 2007 Color Scheme