2010-04-06 6 views
5

Salut Je me demandais s'il était possible d'aligner le bouton à bascule d'un contrôle d'extension WPF sur le côté le plus à droite?Comment aligner le bouton de bascule de contrôle WPF Expander

+0

Pourquoi est-ce que vous devez faire un processus si long quand il y a un processus simple ici dans le lien fourni ci-dessous. http://stackoverflow.com/questions/9288342/how-to-put-wpf-expander-toggle-button-on-right –

Répondre

14

Avec WPF, tout est possible. ;) Malheureusement, tout n'est pas simple. Votre meilleur pari ici est de re-template l'expander. Commencez par copier le modèle par défaut Expander, trouvé here.

Ensuite, recherchez le Grid qui contient 2 colonnes, l'une contenant un ToggleButton et l'autre contenant un ContentPresenter. Échangez les colonnes pour que la bascule soit dans la colonne 1. Puis changez les tailles de définition de colonne de sorte que la première colonne soit de taille étoile et la seconde de taille 20. Lorsque vous avez terminé, vous devriez avoir un morceau dans le gabarit:

<Grid> 
    <Grid.ColumnDefinitions> 
    <ColumnDefinition Width="*" /> 
    <ColumnDefinition Width="20" /> 
    </Grid.ColumnDefinitions> 
    <ToggleButton Grid.Column="1" 
     IsChecked="{Binding Path=IsExpanded,Mode=TwoWay, 
     RelativeSource={RelativeSource TemplatedParent}}" 
     OverridesDefaultStyle="True" 
     Template="{StaticResource ExpanderToggleButton}" 
     Background="{StaticResource NormalBrush}" /> 
    <ContentPresenter Margin="4" 
     ContentSource="Header" 
     RecognizesAccessKey="True" /> 
</Grid> 

Continuez à modifier le modèle jusqu'à ce que vous obteniez l'aspect et la convivialité dont vous avez besoin.

EDIT: Le modèle fourni sur MSDN est une version sans noyau du modèle d'extension «réel». Si vous voulez le modèle d'expandeur stylisé, utilisez Expression Blend et copiez le modèle de contrôle existant sur un Expander.