2009-12-18 4 views
0
나는 내 XAML에 다음이

위의 빈 공간을 남겨 둡니다실버 라이트 3 TextBlock의 텍스트

<Grid x:Name="LayoutRoot" Background="White"> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="20"/> 
     <RowDefinition Height="7"/> 
     <RowDefinition Height="57"/> 
    </Grid.RowDefinitions> 

    <TextBlock Grid.Row="0" FontSize="18">Title Text</TextBlock> 

    <Rectangle Grid.Row="1" Margin="0,2" Height="3" HorizontalAlignment="Stretch" Fill="#ff000000"/> 

    <Border Grid.Row="2" Margin="0" Padding="0" BorderBrush="Black" BorderThickness="1"> 
     <TextBlock Margin="0" Padding="0" FontSize="55">123</TextBlock> 
    </Border> 
</Grid> 

문제는 바닥 TextBlock의 텍스트 위 (10px에 대한) 공간이 있다는 것입니다. 나는 훨씬 더 작은 글꼴 크기를 사용하여이 공간을 제거하는 것처럼 보일뿐입니다.

누구나이 공간이 왜 나타나는지, 내가 그것에 대해 할 수있는 일이 무엇인지 알고 있습니까?

감사합니다.

답변

1

TextBlock의 기본 VerticalAlignment가 Stretch이기 때문입니다. 센터로 설정해보십시오.

<TextBlock Margin="0" Padding="0" FontSize="55" VerticalAlignment="Center">123</TextBlock> 

정말로 미세 조정이 필요하면 음수 상단 여백을 추가 할 수 있습니다.

+0

이렇게하면 문제가 해결됩니다. Strange는 VerticalAlignment를 "Top"으로 설정하려고 시도했기 때문에 문제가 해결되지 않았습니다. "탑"이 작동하지 않지만 "센터"는 왜 그런지 알고 있습니까? – Sako73

+0

그리드의 맨 아래 행이 57px 대신 300px 인 경우 "Top"이 실제로 작동하는 것으로 보입니다. 맨 아래 행은 TextBlock의 실제 높이보다 크기 때문에 (Font 크기가 크기 때문에) Center는 공백에 관계없이 행 위에 세로로 가운데에 배치합니다. 맨 아래 행이 고정 크기가 아니고 여전히 맨 위에 관계하지 않으려면 동일한 효과를 얻으려면 VerticalAlignment = "Top"을 -15px 이상의 위쪽 여백으로 설정해야합니다. –

관련 문제