ScrollView在Windows 10中不起作用

本文关键字:不起作用 Windows ScrollView | 更新日期: 2023-09-27 18:26:03

我有一个ViewModel,大约有200个联系人,我正在将它绑定到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可见性背后的细节,那就太好了

ScrollView在Windows 10中不起作用

ListView控件已经包含一个ScrollViewer,并根据项目数量实现滚动,不需要将此控件包装在另一个ScrollViewer中。您可以在包含所有Windows 10样式的generic.xaml文件的6219行ListView的默认ControlTemplate中仔细检查这一点:

C: ''Program Files(x86)''Windows Kits''10''DesignTime''CommonConfiguration''Neutral''UAP''10.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