ScrollView 在 Windows 10 中不工作

ScrollView not working in Windows 10

我有一个包含大约 200 个联系人的 ViewModel,我将它绑定到一个 ListView

<Grid>
    <ScrollViewer         
        HorizontalScrollBarVisibility="Auto" 
        VerticalScrollBarVisibility="Auto">
        <ListView x:Name="ContactListing" ItemsSource="{Binding ContactListing}"  >
            <ListView.ItemTemplate>
                <DataTemplate>
                    <StackPanel Orientation="Horizontal">
                        <TextBlock Text="{Binding Path=DisplayName}" />
                        <Image Source="{Binding Thumbnail,Converter={StaticResource ResourceKey=contactConv}}" />
                    </StackPanel>
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>
    </ScrollViewer>
</Grid>

如果有人能解释 ScrollViewers 可见性背后的细节就太好了

一个 ListView 控件已经包含一个 ScrollViewer 并且实现了基于项目数量的滚动,没有必要将这个控件包装在另一个 ScrollViewer 中。您可以在包含所有 Windows 10 种样式的 generic.xaml 文件的第 6219 行的 ListView 默认 ControlTemplate 中仔细检查此内容:

C:\Program Files (x86)\Windows Kits\DesignTime\CommonConfiguration\Neutral\UAP.0.10240.0\Generic\generic.xaml

因此,您只需从 XAML 片段中删除 ScrollViewer

<Grid>
    <ListView x:Name="ContactListing" ItemsSource="{Binding ContactListing}"  >
        <ListView.ItemTemplate>
            <DataTemplate>
                <StackPanel Orientation="Horizontal">
                    <TextBlock Text="{Binding Path=DisplayName}" />
                    <Image Source="{Binding Thumbnail,Converter={StaticResource ResourceKey=contactConv}}" />
                </StackPanel>
            </DataTemplate>
        </ListView.ItemTemplate>
    </ListView>
</Grid>

注意:当您使用 ListView 时,我想您希望所有项目都堆叠在一起。如果您想要多个列来显示您的项目,请改用 GridView