【问题标题】:ScrollViewer still visible when Height is 0当 Height 为 0 时,ScrollViewer 仍然可见
【发布时间】:2013-03-10 16:53:14
【问题描述】:

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

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

【问题讨论】:

    标签: xaml windows-phone-8


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 我为 StackPanel 的高度属性设置了动画。因此,高度从 0 变为某个值(或从某个值变为 0)。但是 scrollViewer 并没有隐藏。这就是问题所在。
      【解决方案3】:

      听起来您正试图让 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;
              }
          }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-10-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-10-28
        相关资源
        最近更新 更多