Wpf XAML仅垂直对齐顶部堆叠面板

Wpf XAML仅垂直对齐顶部堆叠面板,wpf,xaml,Wpf,Xaml,我有一个视图,其中包含两个主视图。上面的是一个旋转器,请稍等。。。我需要垂直居中。当顶部一个消失时,底部一个出现,我需要将其拉伸,使内容显示在窗口顶部 <ScrollViewer VerticalScrollBarVisibility="Auto"> <StackPanel HorizontalAlignment="Stretch" VerticalAlignment="Center"> <local

我有一个视图,其中包含两个主视图。上面的是一个旋转器,请稍等。。。我需要垂直居中。当顶部一个消失时,底部一个出现,我需要将其拉伸,使内容显示在窗口顶部

     <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>
不断发生的问题是,底部stackpanel垂直居中,并且内容不会移动到窗口顶部

     <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>
我很抱歉,但我不能显示实际的看法。我想做的是右图,左图。注意:一次仅显示文本或微调器。我并没有试图将两者对齐,只是在文本未显示时使微调器垂直居中


您的booleanToVisibilityConverter是否返回Visibility.collapped或.Hidden for False?为了回收空间,它应该返回折叠状态。

使用网格或DockPanel。我不确定。我想看看你需要的截图和你目前拥有的截图我还不确定要问什么,你只想文本显示在顶部,微调器居中?不确定如何解释我没有尝试将两者对齐,只是在文本不显示时使微调器垂直居中。一次仅显示微调器或文本。它们当前被包装在StackPanel中。尽管我将文本的垂直对齐方式设置为“顶部”或“拉伸”,但问题仍然存在。希望这更有意义。如果是这样的话,他们还是分开了,@HighCore的第一句话是对的。我可以举个例子,但重点是他的。返回Visibility.Collapsed。内置的返回Visibility.Collapsed,是的,但在最初的WPF版本中没有。他没有说他使用的是.NET提供的转换器还是手工创建的转换程序。他说这是一条现已删除的评论中的内置版本