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
risposta
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
.
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 –