1

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

<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,因此内容应该是不可见的。
我如何解决它?

4

3 回答 3

0

听起来您正试图使 ScrollViewer 及其内容在 StackPanel 的高度变为零时消失。如果是这种情况,那么只需触发 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;
        }
    }
于 2013-03-10T08:53:14.380 回答
0

只是搞乱设置。
发现通过添加CacheMode="BitmapCache"工作Stackpanel
谷歌搜索了一下,考虑到性能,似乎不建议这样做。
仍在寻找正确的答案;)

于 2013-02-23T10:52:14.977 回答
0

如果要使StackPanel不可见,请改为设置VisibilityCollapsedScrollViewer或者您希望在某些情况下使不可见?

于 2013-02-23T22:47:17.497 回答