2010-01-20 17 views
7

¿Es posible establecer la alineación de posición para un GroupBoxHeader en WPF? El valor predeterminado es colocarlo en la esquina superior izquierda del esquema GroupBox pero me gustaría que esté centrado en la parte superior. Sé que se pueden establecer las propiedades del texto usando:alineación de la posición del encabezado WPF Groupbox

<GroupBox Grid.Row="1" HorizontalAlignment="Center"> 
    <GroupBox.Header> 
     <TextBlock Text="Cash Match" Foreground="Black" FontWeight="Bold"/> 
    </GroupBox.Header> 
</GroupBox> 

pero estoy buscando para ajustar la posición de la misma con respecto a la GroupBox contorno.

Respuesta

12

¡Es simple! Basta con modificar la plantilla de GroupBox:

En Blend, haga lo siguiente:

  • Haga clic derecho GroupBox> Editar plantilla> Editar una copia> Aceptar
  • Buscar siguiente sección:

    <Border x:Name="Header" Padding="3,1,3,0" 
         Grid.Column="1" Grid.Row="0" Grid.RowSpan="2"> 
        ... 
    </Border> 
    
  • Cambiar Grid.Column a 2

  • Establecer también HorizontalAlignment="Right"

Acabas de alinear el encabezado a la derecha !!! Pero bot la brecha blanca detrás de ella. Por eso,

  • Ahora búsqueda de sección siguiente:

    <Border BorderBrush="White" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="4" Grid.ColumnSpan="4" Grid.Row="1" Grid.RowSpan="3"> 
        <Border.OpacityMask> 
         ... 
        </Border.OpacityMask> 
        ... 
    </Border> 
    
  • Añadir RenderTransformOrigin="0.5,0.5" a la frontera

  • Justo por encima, añadir siguiente código (esto va a cambiar el "brecha de blanco" detrás del encabezado a la derecha:

    <Border.RenderTransform> 
        <ScaleTransform ScaleX="-1"/> 
    </Border.RenderTransform> 
    

¡Ya ha terminado! ¡Acabas de obtener un GroupBox con un encabezado alineado a la derecha!

Por favor dígame si esto es lo que necesita.

+0

Gracias! Esperaba que fuera una propiedad que pasé por alto, pero este enfoque funcionó. – ambog36

+1

¡No hay problema! Pero si esta respuesta resolvió su problema, márquelo como aceptado, para que otros que enfrentan un problema similar puedan confiar en él. – mg007

2

Al cambiar el alinment del encabezado de los cuadros de grupo dará como resultado controles no compatibles con el sistema operativo.

Por lo tanto, creo que no podrá cambiar esto utilizando los estilos predeterminados. Una plantilla personalizada resolverá su problema.

Cuestiones relacionadas