XAML仅垂直对齐顶部堆栈面板

时间:2014-01-14 17:48:48

标签: wpf xaml

我有一个包含两个stackpanels(主要的)的视图。最上面的一个是旋转器和“One Moment Please ...”,我需要垂直居中。当最上面的一个消失时我会看到底部的一个,我需要它拉伸,所以内容出现在窗口的顶部。

     <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)。我想做什么(右图),发生了什么(左图)。注意:一次只显示文本或微调器。我没有尝试对齐两者,只是在没有显示文本时将旋转器中心垂直放置。

enter image description here

1 个答案:

答案 0 :(得分:0)

你的booleanToVisibilityConverter是否返回Visibility.Collapsed或.Hidden为False?它应该返回Collapsed以便回收空间。