【发布时间】:2014-03-05 13:20:48
【问题描述】:
假设我有一个带有两个文本块的堆栈面板,一个在另一个之上。它们水平居中。但是我想隐藏其中一个文本块,并且我希望剩余的项目根据剩余空间垂直居中(就好像它是唯一的项目一样)。这可能吗?
<StackPanel Grid.Row="0" >
<TextBlock Text="Testing!" HorizontalAlignment="Center" FontSize="35">
</TextBlock>
<TextBlock Text="test" HorizontalAlignment="Center" FontSize="25">
</TextBlock>
</StackPanel>
【问题讨论】:
-
您可以在堆栈面板中使用边框来实现此目的。说
<Stackpanel><Border> ... </Border></Stackpanel> -
我认为您需要在此处向我们提供一些 XAML 来帮助您。通常,如果您“隐藏”某些东西(通过设置
Visibility=Visibility.Collapsed,布局将表现得好像它不存在一样。所以必须有其他事情发生。 -
好的,添加了 xaml。好吧,我尝试了可见性折叠选项,但在预览窗口中,第一个文本框没有移动。只有当我在模拟器或设备上实际查看时才生效? - 在模拟器中尝试后编辑它没有任何区别。可见性崩溃没有影响
-
当两个文本块都可见时,它真的垂直对齐吗?据我了解 StackPanel 将从顶部堆叠东西,因此两个文本块都应该从顶部垂直堆叠,并且“VerticalAlignment”不应该有任何效果。
-
看来你是对的,垂直对齐不会影响stackpanel项
标签: c# xaml windows-phone-8