【发布时间】:2014-01-14 17:48:48
【问题描述】:
我有一个包含两个堆栈面板(主要的)的视图。最上面的是一个微调器和“请稍等……”,我需要垂直居中。当顶部消失时底部出现,我需要将其拉伸,以便内容显示在窗口顶部。
<ScrollViewer VerticalScrollBarVisibility="Auto">
<StackPanel HorizontalAlignment="Stretch" VerticalAlignment="Center">
<local:BusyIndicator VerticalAlignment="Center" HorizontalAlignment="Center" Width="50" Height="50" Visibility="{Binding Path=IsBusy, Converter={StaticResource booleanToVisibilityConverter}}"/>
<TextBlock VerticalAlignment="Center" HorizontalAlignment="Center" Text="One Moment Please" Visibility="{Binding Path=IsBusy, Converter={StaticResource booleanToVisibilityConverter}}"/>
<StackPanel HorizontalAlignment="Center" Visibility="{Binding Path=HasError, Converter={StaticResource booleanToVisibilityConverter}}">
<TextBlock
Visibility="{Binding Path=HasError, Converter={StaticResource booleanToVisibilityConverter}}"
Text="{Binding Path=ErrorMessage}" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="12" TextWrapping="Wrap"/>
</StackPanel>
<StackPanel VerticalAlignment="Stretch" Orientation="Vertical" Visibility="{Binding Path=IsBusy, Converter={StaticResource inverseBooleanToVisibilityConverter}}">
</Stackpanel>
</ScrollViewer>
不断发生的问题是底部堆栈面板垂直居中,内容没有移动到窗口顶部。
我很抱歉,但我无法显示实际视图 (NDA)。我正在尝试做什么(右图),正在发生什么(左图)。注意:一次只显示文本或微调器。我不是要对齐两者,只是在不显示文本时使微调器垂直居中。
【问题讨论】:
-
改用
Grid或DockPanel。 -
我不确定。我想看看你需要的截图和你目前拥有的截图
-
我仍然不确定要问什么,您只是希望文本显示在顶部,并且微调器居中?不知道如何解释“我不是想将两者对齐,只是在文本不显示时使微调器垂直居中。”
-
一次只显示微调器或文本。它们目前被包裹在堆栈面板中。即使我将文本的垂直对齐方式设置为顶部或拉伸,问题也是垂直居中的。希望这更有意义。
-
如果是这种情况并且无论如何它们都分开了,@HighCore 的第一条评论是正确的。我可以举个例子,但要点是他的。