Windows phone 8.1 如何在StackPanel中垂直对齐文本块

Windows phone 8.1 如何在StackPanel中垂直对齐文本块,windows-phone-8.1,Windows Phone 8.1,我在Windows phone上用c#做这件事。我想要一个垂直居中对齐的文本块,高度为58。以下是我所做的: <StackPanel Height="58" VerticalAlignment="Center"> <TextBlock Text="{Binding Name}" Style="{StaticResource SubheaderTextBlockStyle}" Foreground="black" />

我在Windows phone上用c#做这件事。我想要一个垂直居中对齐的文本块,高度为58。以下是我所做的:

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

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


谢谢。

StackPanel不适用于此。它“堆叠”事物而不是对齐它们

尝试使用
网格

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

我想你应该使用
网格
而不是
堆栈面板
作为上面提到的第一只老虎和奎师那,而且你还把
垂直对齐放错了位置
?您希望
TextBlock
垂直居中对齐,因此应如下所示:

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

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

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

<DockPanel>
        <Button DockPanel.Dock="Bottom" Name="btn"  HorizontalAlignment="Center" 
                VerticalAlignment="Bottom"></Button>
</DockPanel>


查看此帖子。StackPanel在您的情况下可能是一个错误的选项。谢谢。我不熟悉C#Windows编程。网格是否比StackPanel更重?这意味着它需要更多的内存吗?总的来说,如果可以的话,我应该使用StackPanel而不是grid吗?@michael,因为我不清楚他们每个人的内存消耗情况,我建议看看这个。