当高度为0时,ScrollViewer仍然可见

时间:2013-02-23 10:16:14

标签: xaml windows-phone-8

很容易重现。只需创建一个新项目并粘贴以下代码:

<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>

问题是精确的面板高度为0,因此内容应该是不可见的 我该如何解决?

3 个答案:

答案 0 :(得分:0)

只是搞乱设置。
通过将CacheMode="BitmapCache"添加到工作Stackpanel来发现 用Google搜索,考虑到性能,似乎不建议这样做 仍在寻找合适的答案;)

答案 1 :(得分:0)

如果您想让StackPanel不可见,请将Visibility设置为Collapsed。或者您希望在某些情况下使ScrollViewer不可见?

答案 2 :(得分:0)

听起来,当StackPanel的高度变为零时,您正在尝试使ScrollViewer及其内容消失。如果是这种情况,那么只需触发StackPanel的SizeChanged事件即可处理何时显示或隐藏Scrollviewer。

    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;
        }
    }