2013-02-23 58 views
1

它很容易重現。只要創建一個新的項目並粘貼以下代碼:高度爲0時ScrollViewer仍然可見

<StackPanel Grid.Row="0" Name="Header" Height="0"> 
    <TextBlock Text="This text is hidden" /> 
    <ScrollViewer> 
     <TextBlock Margin="2" TextWrapping="Wrap" FontSize="32" Text="This text isn't."/> 
    </ScrollViewer> 
</StackPanel> 

的問題是,stact面板高度爲0這樣的內容應該是不可見的。
我該如何解決?

回答

0

只是搞亂設置。
發現通過加入CacheMode="BitmapCache"Stackpanel工作。
谷歌搜索它,似乎不建議考慮性能這樣做。
還在尋找合適的答案;)

0

如果你想使StackPanel無形,集VisibilityCollapsed代替。或者你想在某些情況下使ScrollViewer隱形?

+0

我爲StackPanel的高度屬性設置了動畫。因此,高度從0變爲某個值(或者一些變爲0)。但是scrollViewer不會隱藏。那就是問題所在。 – user1510539 2013-02-24 09:47:05

0

聽起來好像你正試圖使ScrollViewer及其內容在StackPanel的高度變爲零時消失。如果是這種情況,那麼只需觸發StackPanel的SizeChanged事件來處理何時應該顯示或隱藏滾動查看器。

private void Header_SizeChanged(object sender, SizeChangedEventArgs e) 
    { 
     if (Header.Height.Equals(0)) 
     { 
      scroller.Visibility = System.Windows.Visibility.Collapsed; 
     } 
     else 
     { 
      scroller.Visibility = System.Windows.Visibility.Visible; 
     } 
    }