2014-03-05 73 views
2

說我有一個有兩個文本塊的堆疊面板,一個在另一個之上。 THey水平居中。但我想隱藏其中一個文本塊,並且我希望剩餘的項目根據剩餘空間垂直居中(就好像它是唯一的項目)。這可能嗎?當我隱藏物品時,如何將剩餘的堆疊面板元素垂直居中居中?

  <StackPanel Grid.Row="0" > 
       <TextBlock Text="Testing!" HorizontalAlignment="Center" FontSize="35"> 
       </TextBlock> 
       <TextBlock Text="test" HorizontalAlignment="Center" FontSize="25"> 
       </TextBlock> 
      </StackPanel> 
+0

您可以在您的堆棧面板中使用Border來實現此目的。說' ...' – Prasanth

+0

我想你會需要給我們一些您的XAML這裏爲您排憂解難。通常情況下,如果你「隱藏」了某些東西(通過設置'Visibility' ='Visibility.Collapsed'),佈局就好像它不在那裏一樣,所以其他的東西一定會繼續下去 – Tim

+0

好吧,添加了xaml。在預覽窗口中,第一個文本框不會移動,它只在我真正在仿真器或設備上查看時才生效? - 在模擬器中嘗試後編輯它並沒有什麼不同。沒有效果 – erotavlas

回答

1

據我所看到的,你不能做到這一點與StackPanel只,相關的問題:How can I vertically align a TextBox inside a StackPanel?

嘗試(與高度無關,如果它是內容的高度容器)包住StackPanel一個固定高度的容器內。然後將StackPanelVerticalAlignment屬性設置爲Center,以使其(以及它的內容)居中在父容器內。例如:

<Grid Height="100"> 
    <StackPanel VerticalAlignment="Center"> 
     <TextBlock Text="Testing!" FontSize="35"/> 
     <TextBlock Text="test"/> 
    </StackPanel> 
</Grid> 
+1

非常感謝! – erotavlas