WPF bouton avec la liste déroulante et flèche

Quelqu'un peut-il suggérer la meilleure façon d'avoir un bouton avec une flèche de liste déroulante comme dans la barre d'outils visual studio bouton nouvel élément. Comme vous pouvez le trouver en VS au survol de la souris est mise en évidence à la fois par défaut du bouton et le bouton de la flèche et après la sélection d'un élément de la liste, le bouton par défaut est en train de changer en fonction de votre sélection.

WPF bouton avec la liste déroulante et flèche
WPF bouton avec la liste déroulante et flèche

Voici un morceau de code qui affiche le menu déroulant, mais pas pour toutes les fonctionnalités décrites ci-dessus:

<StackPanel Orientation="Horizontal">
    <Border CornerRadius="0" BorderBrush="Black" BorderThickness="1">
        <Button Name="CreateButton" Click="CreateButton_Click"  Background="Transparent" BorderBrush="{x:Null}">
            <Image Source="/OMS.Resources;component/Resources/Images/LibraryImages/add1.png" />
            <Button.ContextMenu>
                <ContextMenu HorizontalAlignment="Right">
                    <MenuItem Header=" doc" Click="CreateDocButton_Click">
                        <MenuItem.Icon>
                            <Image Source="/OMS.Resources;component/Resources/Images/LibraryImages/add_sheet.png" Width="24" Height="24" />
                        </MenuItem.Icon>
                    </MenuItem>
                    <MenuItem Header=" xls" Click="CreateXlsButton_Click">
                        <MenuItem.Icon>
                            <Image Source="/OMS.Resources;component/Resources/Images/LibraryImages/add_sheet.png" Width="24" Height="24" />
                        </MenuItem.Icon>
                    </MenuItem>
                    <MenuItem Header=" txt" Click="CreateTxtButton_Click">
                        <MenuItem.Icon>
                            <Image Source="/OMS.Resources;component/Resources/Images/LibraryImages/add_sheet.png" Width="24" Height="24" />
                        </MenuItem.Icon>
                    </MenuItem>
                </ContextMenu>
            </Button.ContextMenu>
        </Button>
    </Border>
    <Border CornerRadius="0" BorderBrush="Black" BorderThickness="1">
        <Button HorizontalAlignment="Left" VerticalAlignment="Stretch"  Background="Transparent" BorderBrush="{x:Null}"
        ContextMenuService.IsEnabled="False" Click="AddButtonContextMenu_Click">
            <Image Source="/OMS.Resources;component/Resources/Images/LibraryImages/arrow_down.png" VerticalAlignment="Center" Width="9" />
        </Button>
    </Border>
</StackPanel>
J'ai quelque chose de similaire, le programme d'installation avec un Expandeur. Il vous donne beaucoup de le regarder et se sentir hors de la boîte.

OriginalL'auteur artos | 2013-07-19