Windows Phone 8 ScrollViewer.CanContentScroll无法识别

本文关键字:识别 CanContentScroll ScrollViewer Phone Windows | 更新日期: 2023-09-27 18:00:03

我是用C#编程的Windows Phone 8应用程序编程的新手,我正在尝试创建一个文本框数组。我正在创建数组并将其添加为堆栈面板的子级,并且我正在尝试让它显示多个文本框,并且我读到如果 CanContentScroll 属性设置为"true",则可以完成它,因为它默认设置为"false"。但是,当我尝试添加它时,它无法被智能感知识别。你可以帮我吗?

<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模块。

Windows Phone 8 ScrollViewer.CanContentScroll无法识别

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

您不需要设置"CanContentScroll"。 如果ScrollViewer子项超出滚动查看器的边界,则应显示滚动条。 尝试:

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

例如:

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