很容易重现。只需创建一个新项目并粘贴以下代码:
<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,因此内容应该是不可见的 我该如何解决?
答案 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;
}
}