WinRT XAML GridView控件中的“粘滞滚动”问题

WinRT XAML GridView控件中的“粘滞滚动”问题,第1张

概述我在 Windows应用商店应用页面中定义了一个非常基本的GridView控件,如下所示: <GridView x:Name="myGridView" Grid.RowSpan="2" Padding="30,137,40,46" ItemsSource="{Binding Source={StaticResource myItems 我在 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控件中的“粘滞滚动”问题所遇到的程序开发问题。

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1127285.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存