2010-04-06 9 views
5

Ciao Mi chiedevo è possibile allineare il pulsante di commutazione su un controllo di espansione WPF all'estrema destra?Come allineare il pulsante di attivazione del controllo WPF Expander

+0

Perché si deve fare un processo così lungo quando c'è un processo semplice qui nel link fornito di seguito. http://stackoverflow.com/questions/9288342/how-to-put-wpf-expander-toggle-button-on-right –

risposta

14

Con WPF tutto è possibile. ;) Purtroppo non tutte le cose sono semplici. La tua migliore scommessa qui è di ricodificare l'expander. Inizia copiando il modello predefinito Expander, trovato here.

Successivamente, trovare lo Grid che contiene 2 colonne, una contenente ToggleButton e l'altra contenente ContentPresenter. Scambia le colonne in modo che il commutatore sia nella colonna 1. Quindi modifica le dimensioni della definizione della colonna in modo che la prima colonna abbia una dimensione a stella e la seconda sia la dimensione 20. Al termine, dovresti avere un blocco nel modello simile al seguente:

<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> 

Continuare a modificare il modello fino a ottenere l'aspetto desiderato.

MODIFICA: il modello fornito su MSDN è una versione ridotta del modello di espansione "reale". Se si desidera il modello di espansione stilizzato, utilizzare Expression Blend e copiare il modello di controllo esistente su Expander.