Como alinhar o botão de alternância de controle do expansor WPF
Pergunta
Olá, eu queria saber que é possível alinhar o botão de alternância em um controle WPF Expander para o lado direito?
Solução
Com o WPF, todas as coisas são possíveis. ) Infelizmente, nem todas as coisas são simples. Sua melhor aposta aqui é re-modelar o expansor. Comece copiando o padrão Expander
modelo, encontrado aqui.
Em seguida, encontre o Grid
que contém 2 colunas, uma contendo um ToggleButton
e o outro contendo um ContentPresenter
. Troque as colunas para que a alternância esteja na coluna 1. depois altere os tamanhos de definição da coluna para que a primeira coluna seja do tamanho de estrela e a segunda é o tamanho 20. Quando terminar, você deve ter um pedaço no modelo que se parece esta:
<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>
Continue modificando o modelo até obter a aparência de que precisa.
EDITAR: O modelo fornecido no MSDN é uma versão nua do modelo de expansão "real". Se você deseja o modelo de expansão estilizado, use a mistura de expressão e copie o modelo de controle existente de um Expander
.