2009-07-08 20 views
9

Wie kann ich Label und TextBlock unter Top so vertikal ausrichten, dass die ersten Textzeilen aufeinander ausgerichtet sind?Etiketten und Textblöcke vertikal in XAML vertikal ausrichten

<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> 

Der obige Code gibt mir diese:

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

Antwort

17

Den zusätzlichen Platz um das Etikett stammt aus der Padding-Eigenschaft. Um den Platz zu entfernen, können Sie die Padding-Eigenschaft direkt auf dem Label auf "0" setzen oder natürlich über einen Style festlegen.

+6

Es scheint, dass ein Label Padding standardmäßig auf 5 gesetzt ist, und ein TextBlock ist auf 0 gesetzt. Danke für die Antwort. –

+0

Das Problem beginnt, wenn FontSize für die beiden Steuerelemente unterschiedlich ist. – Shimmy

+1

Vielen Dank für die Enthüllung eines der Geheimnisse von WPF für mich –

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

HTH.