Windows phone 8.1 如何在StackPanel中垂直对齐文本块
我在Windows phone上用c#做这件事。我想要一个垂直居中对齐的文本块,高度为58。以下是我所做的: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" />
<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,因为我不清楚他们每个人的内存消耗情况,我建议看看这个。