2009-07-08 6 views
9

Come allineare verticalmente uno Label e TextBlock allo Top in modo che le prime righe di testo siano allineate?Allineamento verticale di etichette e blocchi di testo nella parte superiore in 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> 

Il codice di cui sopra mi dà questo:

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

risposta

17

Lo spazio aggiuntivo attorno all'etichetta proviene dalla proprietà imbottitura. Per rimuovere lo spazio, è possibile impostare esplicitamente la proprietà Padding su "0" direttamente sull'etichetta o, ovviamente, impostarla tramite uno stile.

+6

Sembra che il Padding di un'etichetta è impostato su 5 per impostazione predefinita e un TextBlock è impostato su 0. Grazie per la risposta. –

+0

Il problema inizia quando FontSize è diverso tra i due controlli. – Shimmy

+1

Grazie per aver svelato uno dei misteri di WPF –

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

HTH.