BarSplitItemThemeSelectorBehavior
The BarSplitItemThemeSelectorBehavior is behavior that automatically populates the associated BarSplitButtonItem with all available themes and allows you to choose a theme applied to your application.
To use the BarSplitItemThemeSelectorBehavior, attach it to a BarSplitButtonItem in a RibbonControl.
<dxb:BarSplitButtonItem... >
<dxmvvm:Interaction.Behaviors>
<dxb:BarSplitItemThemeSelectorBehavior />
</dxmvvm:Interaction.Behaviors>
</dxb:BarSplitButtonItem>
Tip
Use the static ApplicationThemeHelper.SaveApplicationThemeName method to save the current theme name (defined using the static ApplicationThemeHelper.ApplicationThemeName property) to the application configuration file. To retrieve the theme name from the configuration file, call the static ApplicationThemeHelper.UpdateApplicationThemeName method.
An example illustrating how to use this behavior.
Note
A complete sample project is available at https://github.com/DevExpress-Examples/how-to-implement-a-theme-selector-based-on-a-bar-item-e4288.
<dxr:DXRibbonWindow
x:Class="ThemeHelperWPF.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
xmlns:dxr="http://schemas.devexpress.com/winfx/2008/xaml/ribbon"
xmlns:dxb="http://schemas.devexpress.com/winfx/2008/xaml/bars"
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
xmlns:dxmvvm="http://schemas.devexpress.com/winfx/2008/xaml/mvvm"
Title="MainWindow" Height="350" Width="525">
<DockPanel>
<dxr:RibbonControl x:Name="RibbonControl" DockPanel.Dock="Top">
<dxr:RibbonControl.PageHeaderItems>
<dxb:BarEditItem
Content="Ribbon Style:"
EditWidth="100"
ClosePopupOnChangingEditValue="True"
EditValue="{Binding RibbonStyle, ElementName=RibbonControl}">
<dxb:BarEditItem.EditSettings>
<dxe:ComboBoxEditSettings IsTextEditable="False" PopupMaxHeight="250">
<dxe:ComboBoxEditSettings.Items>
<dxr:RibbonStyle>Office2010</dxr:RibbonStyle>
<dxr:RibbonStyle>Office2007</dxr:RibbonStyle>
</dxe:ComboBoxEditSettings.Items>
</dxe:ComboBoxEditSettings>
</dxb:BarEditItem.EditSettings>
</dxb:BarEditItem>
</dxr:RibbonControl.PageHeaderItems>
<dxr:RibbonDefaultPageCategory>
<dxr:RibbonPage Caption="Home"/>
<dxr:RibbonPage Caption="Settings" IsSelected="True">
<dxr:RibbonPageGroup Caption="Bar Split Item">
<dxb:BarSplitButtonItem
Content="Themes"
Glyph="{dx:DXImage Image=LoadTheme_16x16.png}"
LargeGlyph="{dx:DXImage Image=LoadTheme_32x32.png}">
<dxmvvm:Interaction.Behaviors>
<dxb:BarSplitItemThemeSelectorBehavior/>
</dxmvvm:Interaction.Behaviors>
</dxb:BarSplitButtonItem>
</dxr:RibbonPageGroup>
<dxr:RibbonPageGroup Caption="Bar Sub Item">
<dxb:BarSubItem
Content="Themes"
Glyph="{dx:DXImage Image=LoadTheme_16x16.png}"
LargeGlyph="{dx:DXImage Image=LoadTheme_32x32.png}">
<dxmvvm:Interaction.Behaviors>
<dxb:BarSubItemThemeSelectorBehavior ShowMode="GroupedInSubMenus"/>
</dxmvvm:Interaction.Behaviors>
</dxb:BarSubItem>
</dxr:RibbonPageGroup>
<dxr:RibbonPageGroup Caption="Ribbon Gallery Item">
<dxr:RibbonGalleryBarItem Content="Themes">
<dxmvvm:Interaction.Behaviors>
<dxr:RibbonGalleryItemThemeSelectorBehavior />
</dxmvvm:Interaction.Behaviors>
<dxr:RibbonGalleryBarItem.Gallery>
<dxb:Gallery ColCount="4"/>
</dxr:RibbonGalleryBarItem.Gallery>
</dxr:RibbonGalleryBarItem>
</dxr:RibbonPageGroup>
</dxr:RibbonPage>
</dxr:RibbonDefaultPageCategory>
</dxr:RibbonControl>
</DockPanel>
</dxr:DXRibbonWindow>