Pergunta

Olá, eu queria saber que é possível alinhar o botão de alternância em um controle WPF Expander para o lado direito?

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top