xaml - ScrollViewer 自动改变它的高度并且不滚动

在我的程序中,我使用 ScrollViewer 来显示里面的元素,但是问题是当 ScrollViewer 被内容填充时,它的高度会自动改变,并且由于高度等于内容而无法滚动。我在 Grid 中放置了一个 ScrollViewer,它会自动伸展到它的全高 VerticalAlignment="Stretch"。我无法预先限制它的高度,因为它的高度会自动调整到其父级以填充所有空间。我该如何解决这个问题?

<Grid Grid.Column="0" RowSpacing="10">
        <Grid.RowDefinitions>
            <RowDefinition MaxHeight="35"/>
            <RowDefinition MaxHeight="35"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>
        
        <Grid Grid.Row="2">
            <ScrollViewer VerticalAlignment="Stretch" VerticalScrollMode="Enabled" VerticalScrollBarVisibility="Visible" HorizontalScrollMode="Disabled">
                <ItemsControl x:Name="notesContent" Loaded="NotesContent_Loaded" Margin="0,0,15,0">
                    <ItemsControl.ItemContainerTransitions>
                        <TransitionCollection>
                            <AddDeleteThemeTransition>
                            </AddDeleteThemeTransition>
                        </TransitionCollection>
                    </ItemsControl.ItemContainerTransitions>
                    <ItemsControl.ItemsPanel>
                        <ItemsPanelTemplate>
                            <StackPanel/>
                        </ItemsPanelTemplate>
                    </ItemsControl.ItemsPanel>
                </ItemsControl>
            </ScrollViewer>
        </Grid>
    </Grid>

回答1

ScrollViewer 会自动改变它的高度并且不会滚动

ScrollViewer 的父级是 Grid,并且您已将其 Vertical Alignment 属性设置为 Stretch,它将垂直填充到网格中。而且它是设计使然,您可以参考 Grid https://docs.microsoft.com/en-us/uwp/api/windows.ui.xaml.controls.grid?view=winrt-22000

而如果要让ScrollViewer可滚动,则需要让内容大于ScrollViewer的实际高度,更好的方法是https://docs.microsoft.com/en-us/uwp/api/windows.ui.xaml.controls.scrollviewer?view=winrt-22000的特定高度value。

相似文章

随机推荐

最新文章