2013-02-23 60 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; 
     } 
    }