2009-07-08 6 views
9

¿Cómo puedo alinear verticalmente un Label y TextBlock en Top para alinear sus primeras líneas de texto?Alineación vertical de etiquetas y TextBlocks en la parte superior en XAML

<Grid> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="Auto" /> 
     <ColumnDefinition /> 
    </Grid.ColumnDefinitions> 
    <Grid.RowDefinitions> 
     <RowDefinition /> 
    </Grid.RowDefinitions> 
    <Label Grid.Column="0" VerticalAlignment="Top">Some Label:</Label> 
    <TextBlock Grid.Column="0" VerticalAlignment="Top">Some text<TextBlock> 
</Grid> 

El código anterior me da esto:

Vertically misaligned Label and TextBlock text http://img156.imageshack.us/img156/4940/labeltextblock.png

Respuesta

17

El espacio adicional alrededor de la etiqueta viene de la propiedad padding. Para eliminar el espacio, puede establecer explícitamente la propiedad de relleno en "0" directamente en la etiqueta, o, por supuesto, configurarlo a través de un estilo.

+6

Parece que el Padding de una etiqueta se establece en 5 por defecto, y un TextBlock está configurado en 0. Gracias por la respuesta. –

+0

El problema comienza cuando FontSize es diferente entre los dos controles. – Shimmy

+1

Gracias por desvelar uno de los misterios de WPF para mí –

1
<TextBlock> 
<InlineUIContainer BaselineAlignment="Top"><Label Content="Label"/></InlineUIContainer> 
<InlineUIContainer BaselineAlignment="Top"><TextBlock>TextBlock Content</TextBlock>     </InlineUIContainer> 
</TextBlock> 

HTH.

Cuestiones relacionadas