Windows Phone 8 ScrollViewer.CanContentScroll无法识别?

时间:2014-04-24 20:40:07

标签: c# windows-phone-8

我是C#中Windows Phone 8应用程序编程的新手,我正在尝试创建一个文本框数组。我正在创建数组并将其作为Stack Panel的子项添加,我试图让它显示多个文本框,并且我读到如果CanContentScroll属性设置为'真正的'因为它设置为“假”'默认情况下。但是,当我尝试添加它时,intellisense无法识别它。你能救我吗?

<ScrollViewer VerticalScrollBarVisibility="Auto" CanContentScroll="True" Margin="10,135,10,7" >
            <StackPanel x:Name="TextBoxStack" HorizontalAlignment="Left" Height="419" Margin="0,166,0,0" VerticalAlignment="Top" Width="446"/>
</ScrollViewer>

我正在使用VS2013,并且正确包含了System.Phone.Controls和System.Windows.Controls模块。

2 个答案:

答案 0 :(得分:0)

使用网格而不是StackPanel。我忘记了确切的原因,但StackPanel没有正确地向ScrollViewer容器报告它的大小,导致ScrollViewer无法正确滚动。使用网格将解决此问题。

答案 1 :(得分:0)

您不需要设置“CanContentScroll”。 ScrollViewer如果子节点超出ScrollViewer的边界,则应显示滚动条。尝试:

  • 删除子StackPanel的固定高度。你不想限制它的高度 - 它应该扩展到它的子节点,以便ScrollViewer知道正确的滚动范围。
  • 确保ScrollViewer具有固定或有限的高度 - 即,将其放在像Grid这样的固定大小的容器中,而不是像StackPanel这样的无限扩展容器。如果它可以无限延伸,它将始终能够容纳它的孩子,并且永远不会认为它必须滚动。

例如:

<Grid>
    <ScrollViewer VerticalScrollBarVisibility="Auto">
        <StackPanel x:Name="TextBoxStack"
                    HorizontalAlignment="Left" VerticalAlignment="Top" Width="446"/>
    </ScrollViewer>
</Grid>