2014-01-14 96 views
0

我有一個包含兩個堆疊面板(主要)的視圖。最重要的是一個微調和「一刻請...」,我需要垂直居中。最下面的一個會在頂層消失時出現,我需要將其拉伸,以便內容出現在窗口的頂部。XAML垂直對齊只有頂部堆疊面板

 <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)。我正在嘗試做什麼(正確的圖像),發生了什麼(左圖)。注意:只有文本或Spinner一次顯示。我不想將兩者對齊,只是在文本未顯示時使旋轉中心垂直居中。

enter image description here

+2

改爲使用「Grid」或「DockPanel」。 –

+0

兩個DockPanel? – devfunkd

+0

我不確定。我希望看到您需要的屏幕截圖以及您目前擁有的屏幕截圖 –

回答

0

貴booleanToVisibilityConverter返回Visibility.Collapsed或.Hidden爲假?它應該返回摺疊,以便空間被回收。

+0

[BooleanToVisibilityConverter](http://msdn.microsoft.com/zh-cn/library/system.windows.controls.booleantovisibilityconverter(v = vs.110).aspx)返回Visibility.Collapsed。 –

+0

內置的是,但是這並不是最初的WPF版本。他沒有說他是使用.NET提供的轉換器還是手工創建的轉換器。 – jschroedl

+0

他說這是現在刪除的評論中的內置版本 –