Alinhamento da posição do cabeçalho do WPF Groupbox
Pergunta
É possível definir o alinhamento de posição para um GroupBox
Header
em wpf? O padrão é colocar no canto superior esquerdo do GroupBox
contorno, mas eu gostaria que fosse centrado no topo. Eu sei que você pode definir as propriedades do texto usando:
<GroupBox Grid.Row="1" HorizontalAlignment="Center">
<GroupBox.Header>
<TextBlock Text="Cash Match" Foreground="Black" FontWeight="Bold"/>
</GroupBox.Header>
</GroupBox>
Mas estou procurando definir a posição disso em relação ao GroupBox
contorno.
Solução
É simples! Apenas editar modelo de grupo:
Na mistura, faça o seguinte:
- Clique com o botão direito do mouse em grupo> Modelo de edição> Editar uma cópia> OK
Pesquise a seção seguinte:
<Border x:Name="Header" Padding="3,1,3,0" Grid.Column="1" Grid.Row="0" Grid.RowSpan="2"> ... </Border>
Mudar
Grid.Column
para2
- Também definido
HorizontalAlignment="Right"
Você acabou de alinhar o cabeçalho para a direita !!! Mas botam a diferença branca por trás dele. Por isso,
Agora procure a seção seguinte:
<Border BorderBrush="White" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="4" Grid.ColumnSpan="4" Grid.Row="1" Grid.RowSpan="3"> <Border.OpacityMask> ... </Border.OpacityMask> ... </Border>
Adicionar
RenderTransformOrigin="0.5,0.5"
para a fronteiraLogo acima, adicione o seguinte código (isso mudará o "Gap branco" atrás do cabeçalho para a direita:
<Border.RenderTransform> <ScaleTransform ScaleX="-1"/> </Border.RenderTransform>
Você terminou! Você acabou de ter uma caixa de grupo com cabeçalho alinhado direito !!!
Por favor, diga -me se é isso que você exigiu.
Outras dicas
A alteração do alinhamento do cabeçalho do grupo resultará em controles não-conformados.
Portanto, acho que você não será capaz de alterar isso usando os estilos padrão. Um modelo personalizado resolverá seu problema.