如何在StackPanel中垂直对齐TextBlock

时间:2014-10-15 05:55:35

标签: windows-phone-8.1

我在Windows手机上的c#中这样做。我希望TextBlock在StackPanel中垂直居中对齐,高度为58.这就是我所做的:

<StackPanel Height="58" VerticalAlignment="Center">
                <TextBlock Text="{Binding Name}" Style="{StaticResource SubheaderTextBlockStyle}" Foreground="black"  />
            </StackPanel>

但它没有垂直居中对齐。你能告诉我为什么以及如何解决这个问题?

谢谢。

3 个答案:

答案 0 :(得分:2)

我猜你应该选择Grid而不是StackPanel作为@ The-First-Tiger&amp; @Krishna上面提到过,你也错放了VerticalAlignment?您希望TextBlock垂直对齐,因此它应该是这样的:

 <Grid Height="58" >
   <TextBlock  VerticalAlignment="Center" Text="{Binding Name}"  Foreground="black"  />
 </Grid   

答案 1 :(得分:0)

StackPanel不适用于此。它堆叠&#39;事情没有对齐它们。

尝试使用Grid代替:

<Grid Height="58">
    <TextBlock Text="{Binding Name}" Height="20" Foreground="black"/>
</Grid>

答案 2 :(得分:0)

根据MSDN docs about StackPanel

  

StackPanel将子元素排列成可以定向的单行   水平或垂直。

因此,在您的情况下,StackPanel不是正确的控件。如果您希望将控件固定在特定位置,可以使用DockPanel并将控件放在其中。 DockPanel的Children控件可以使用select属性来对齐

.Dock