Xaml 当高度为0时,ScrollViewer仍然可见
它很容易复制。只需创建一个新项目并粘贴以下代码:Xaml 当高度为0时,ScrollViewer仍然可见,xaml,windows-phone-8,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."/&
<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,因此内容应该是不可见的。我如何修复它?只是乱搞设置。
通过将
CacheMode=“BitmapCache”
添加到Stackpanel
中,发现该方法有效。谷歌搜索了一下,考虑到性能,似乎不建议这样做。
仍然在寻找正确的答案;) 如果要使堆栈面板不可见,请将
可见性设置为折叠
。或者您希望在某些情况下使ScrollViewer不可见?当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;
}
}
我为StackPanel的高度属性设置了动画。因此,高度从0变为某个值(或从某个值变为0)。但是scrollViewer并没有隐藏。这就是问题所在。