Skip to main content
A newer version of this page is available. .

How to: Customize DXTabControl's Content Header, Content Footer and Control Box Areas

<UserControl x:Class="DXTabControlExample.View.MainView"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxb="http://schemas.devexpress.com/winfx/2008/xaml/bars"
    xmlns:dxmvvm="http://schemas.devexpress.com/winfx/2008/xaml/mvvm"
    xmlns:vm="clr-namespace:DXTabControlExample.ViewModel"
    xmlns:v="clr-namespace:DXTabControlExample.View"
    DataContext="{dxmvvm:ViewModelSource Type=vm:MainViewModel}"
    mc:Ignorable="d" d:DesignHeight="300" d:DesignWidth="1000">
    <Grid>
        <Grid.Resources>

            <DataTemplate x:Key="TabItemHeaderTemplate">
                <TextBlock Text="{Binding}" FontWeight="Medium"/>
            </DataTemplate>

            <DataTemplate x:Key="TabItemContentTemplate">
                <v:ContactView/>
            </DataTemplate>

            <Style x:Key="TabItemStyle" TargetType="dx:DXTabItem">
                <Setter Property="Header" Value="{Binding FirstName}"/>
                <Setter Property="Content" Value="{Binding}"/>
            </Style>


            <!--Content Headers and Footers-->

            <DataTemplate x:Key="ContentHeaderTemplate">
                <dxb:MainMenuControl>
                    <dxb:BarButtonItem Name="Main" Content="Update All" BarItemDisplayMode="ContentAndGlyph"  Command="{Binding UpdateAllCommand}" Glyph="{dx:DXImage Image=Refresh_16x16.png}"/>
                </dxb:MainMenuControl>
            </DataTemplate>

            <DataTemplate x:Key="ContentFooterTemplate">
                <Border Background="Khaki" Height="20"/>
            </DataTemplate>

            <!--Control Box Templates-->
            <DataTemplate x:Key="ControlBoxLeftTemplate">
                <TextBlock Text="Employees: " FontWeight="Medium"  Margin="0,2,0,0"/>
            </DataTemplate>

            <DataTemplate x:Key="ControlBoxRightTemplate">
                <Button Margin="5,2,0,0" Command="{Binding ShowStatisticsCommand}">
                    <Image Source="{dx:DXImage Image=3DCylinder_16x16.png}"/>    
                </Button>
            </DataTemplate>

            <DataTemplate x:Key="ControlBoxPanelTemplate">
                <Button Margin="5,2,0,0" Command="{Binding AnalizeCommand}">
                    <Image Source="{dx:DXImage Image=3DLine_16x16.png}"/>
                </Button>
            </DataTemplate>
        </Grid.Resources>
        <dx:DXTabControl x:Name="tabControl" ItemsSource="{Binding Contacts}" ItemContainerStyle="{StaticResource TabItemStyle}" ItemTemplate="{StaticResource TabItemContentTemplate}"
                         ItemHeaderTemplate="{StaticResource TabItemHeaderTemplate}"
                         ContentHeaderTemplate="{StaticResource ContentHeaderTemplate}"
                         ContentFooterTemplate="{StaticResource ContentFooterTemplate}"
                         ControlBoxLeftTemplate="{StaticResource ControlBoxLeftTemplate}"
                         ControlBoxRightTemplate="{StaticResource ControlBoxRightTemplate}"
                         ControlBoxPanelTemplate="{StaticResource ControlBoxPanelTemplate}">
            <dx:DXTabControl.View>
                <dx:TabControlScrollView />
            </dx:DXTabControl.View>
        </dx:DXTabControl>
    </Grid>
</UserControl>