UWP ScrollViewer和StackPanels无法正常工作

时间:2018-03-29 01:53:10

标签: c# uwp win-universal-app windows-10-universal

UWP ScrollViewer元素根本不会滚动StackPanel。我已经尝试了Grid和行定义,但这也没有用。这是我目前的XAML。

GIF showing scrolling not working properly

<Page
    x:Class="Thunderstorm.Pages.Home"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:Thunderstorm.Pages"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d">

    <ScrollViewer VerticalScrollBarVisibility="Auto" Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
        <StackPanel>
            <StackPanel x:Name="Weather"
                        Background="LightBlue"
                        Height="500"
                        MaxHeight="750"
                        VerticalAlignment="Top" 
                        Padding="10,0,0,0">
                <TextBlock Text="25℉" Style="{ThemeResource HeaderTextBlockStyle}" FontSize="85" Margin="25,25,0,0" MaxWidth="500" HorizontalAlignment="Left"/>
            </StackPanel>
            <StackPanel>
                <TextBlock Text="Scroll test string to overflow"/>
                <TextBlock Text="Scroll test string to overflow"/>
                <TextBlock Text="Scroll test string to overflow"/>
                <TextBlock Text="Scroll test string to overflow"/>
                <TextBlock Text="Scroll test string to overflow"/>
                <TextBlock Text="Scroll test string to overflow"/>
                <TextBlock Text="Scroll test string to overflow"/>
                <TextBlock Text="Scroll test string to overflow"/>
                <TextBlock Text="Scroll test string to overflow"/>
                <TextBlock Text="Scroll test string to overflow"/>
                <TextBlock Text="Scroll test string to overflow"/>
                <TextBlock Text="Scroll test string to overflow"/>
                <TextBlock Text="Scroll test string to overflow"/>
                <TextBlock Text="Scroll test string to overflow"/>
                <TextBlock Text="Scroll test string to overflow"/>
                <TextBlock Text="Scroll test string to overflow"/>
                <TextBlock Text="Scroll test string to overflow"/>
                <TextBlock Text="Scroll test string to overflow"/>
            </StackPanel>
        </StackPanel>
    </ScrollViewer>
</Page>

(如果这是一个愚蠢的问题,我道歉 - 我是UWP开发的新手,也忽略了我在TextBlock上明确定义字体大小)

2 个答案:

答案 0 :(得分:0)

我无法重现您的问题,即使我将页面放在导航视图中,也不会像在GIF示例中那样。

我怀疑,有一个父元素允许内容增长到任何可能的大小。您可以在空白项目中自行测试。当您将发布的XAML放在空白项目中时,滚动将按预期工作。

当您将ScrollViewer放在StackPanelGridRowHeight="Auto"时,它不会滚动,因为父母&#34;提供&#34;它需要的任何空间。 GIF实际上证明了 - 看到滚动查看器的底部被裁剪(向下箭头不可见) - 这是因为层次结构中的某些东西让它增长到它想要的任何大小。

ScrollViewer是否有父母?如果没有,您如何在NavigationView中显示该页面?如果我的建议无效,请同时发布NavigationView XAML。

答案 1 :(得分:0)

我正在调用的框架是在一个堆栈面板内部,直到现在我才注意到它。我删除了堆栈面板并使用原始代码进行滚动。