Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了WinRT XAML GridView控件中的“粘滞滚动”问题大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我在 Windows应用商店应用页面中定义了一个非常基本的GridView控件,如下所示:

<GridView
        x:Name="myGridView"
        Grid.RowSpan="2"
        Padding="30,137,40,46"
        Itemssource="{Binding source={Staticresource myItemsViewsourcE}}"
        ItemTemplate="{Staticresource My500x500ItemTemplatE}"
        SELEctionMode="Multiple"
        IsSwipeEnabled="True"
        IsItemClickEnabled="True">

        <GridView.ItemsPanel>
            <ItemsPanelTemplate>
                <VirtualizingStackPanel Orientation="Horizontal"/>
            </ItemsPanelTemplate>
        </GridView.ItemsPanel>
        <GridView.GroupStyle>
            <GroupStyle>
                <GroupStyle.HeaderTemplate>
                    <DataTemplate>
                        <Grid Margin="1,6">
                            <Button
                            Style="{Staticresource TextPriMaryButtonStylE}">
                                <StackPanel Orientation="Horizontal">
                                    <TextBlock Text="{Binding titlE}" Margin="3,-7,10,10" Style="{Staticresource GroupHeaderTextStylE}" />
                                    <TextBlock Text="{Staticresource ChevronGlyph}" FontFamily="Segoe UI Symbol" Margin="0,10" Style="{Staticresource GroupHeaderTextStylE}"/>
                                </StackPanel>
                            </Button>
                        </Grid>
                    </DataTemplate>
                </GroupStyle.HeaderTemplate>
                <GroupStyle.Panel>
                    <ItemsPanelTemplate>
                        <VariableSizedWrapGrid/>
                    </ItemsPanelTemplate>
                </GroupStyle.Panel>
            </GroupStyle>
        </GridView.GroupStyle>
    </GridView>

在运行时,绑定到myItemsViewsource的数据出现在GridView控件中,正如我所料.

但是,当数据源中的项目数多于屏幕上显示的项目时,我遇到了一个奇怪的滚动问题.滚动条似乎“抵制”我滚动集合的努力,只是略微移动视口,直到它“自由”并且我可以滚动其余的项目:

同样的事情发生在返回的路上,从右到左:滚动顺利进行,直到我足够接近滚动区域的开始,它似乎再次“粘住”:

虑到问题与虚拟化有关,我尝试将GridView的ItemsPanel更改为StackPanel而不是VirtualizingStackPanel,但这会阻止任何项目的显示效果更差.注意:GridView不托管在任何其他滚动区域或画布中.

我将在下面发布我的解决方法,但我希望有人有一个更令人满意的答案.

解决方法

您应该删除实际GridView上的左边距和填充,并将其添加到ItemsPanel声明中.有点混乱,因为认模板确实在gridview上设置了填充.

下面是GridView的开始,它带有认模板,我对GridView控件上的填充进行了编辑,并在VirtualizingStackPanel ItemsPanel声明上设置了边距.

<GridView
        x:Name="itemGridView"
        AutomationProperties.AutomationId="ItemGridView"
        AutomationProperties.Name="Grouped Items"
        Grid.RowSpan="2"
        Padding="0,46"
        Itemssource="{Binding source={Staticresource groupedItemsViewsourcE}}"
        ItemTemplate="{Staticresource Standard250x250ItemTemplatE}"
        SELEctionMode="None"
        IsSwipeEnabled="false"
        IsItemClickEnabled="True"
        ItemClick="ItemView_ItemClick">

        <GridView.ItemsPanel>
            <ItemsPanelTemplate>                        
                <VirtualizingStackPanel Margin="116,0" Orientation="Horizontal"/>
            </ItemsPanelTemplate>
        </GridView.ItemsPanel>

大佬总结

以上是大佬教程为你收集整理的WinRT XAML GridView控件中的“粘滞滚动”问题全部内容,希望文章能够帮你解决WinRT XAML GridView控件中的“粘滞滚动”问题所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。