加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – Windows Phone 8.1 XAML中带有WrapGrid的ListView的奇怪行

发布时间:2020-12-15 07:53:27 所属栏目:百科 来源:网络整理
导读:我有一个带有ListView nad WrapGrid的 Windows Phone 8.1 XAML应用程序作为其ItemsPanel来显示两列中的项目 ListView x:Name="ListV" ItemClick="ListV_ItemClick" IsItemClickEnabled="True" ListView.ItemsPanel ItemsPanelTemplate WrapGrid Orientation=
我有一个带有ListView nad WrapGrid的 Windows Phone 8.1 XAML应用程序作为其ItemsPanel来显示两列中的项目
<ListView x:Name="ListV" ItemClick="ListV_ItemClick" IsItemClickEnabled="True">
        <ListView.ItemsPanel>
            <ItemsPanelTemplate>
                <WrapGrid Orientation="Horizontal" ItemWidth="160" ItemHeight="280" MaximumRowsOrColumns="2" />
            </ItemsPanelTemplate>
        </ListView.ItemsPanel>
        <ListView.ItemTemplate>
            <DataTemplate>
                <Grid Background="Red" Margin="12" Width="100" Height="100"></Grid>
            </DataTemplate>
        </ListView.ItemTemplate>
    </ListView>

页面的缓存模式设置为NavigationCacheMode.Required.

我在列表中搜索,点击一个项目并导航到另一个屏幕.当我使用ListView导航回页面时,ListView会记住scoll位置(NavigationCacheMode.Required),但会“破坏”,当我点击项目时,他们只是奇怪地跳起来.

以下是重现问题的完整简单解决方案:https://dl.dropboxusercontent.com/u/73642/listview.zip.

这是一个显示问题的视频:https://dl.dropboxusercontent.com/u/73642/listview.wmv

有人经历过这个吗?有没有解决这个问题的方法?

解决方法

我发现的一个解决方法是将ListView包装在ScrollViewer中.这是垂直滚动查看器的样式:
<Style x:Key="VerticalScrollViewerStyle" TargetType="ScrollViewer">
    <Setter Property="HorizontalScrollBarVisibility" Value="Disabled" />
    <Setter Property="VerticalScrollBarVisibility" Value="Auto" />
    <Setter Property="ScrollViewer.HorizontalScrollMode" Value="Disabled" />
    <Setter Property="ScrollViewer.VerticalScrollMode" Value="Enabled" />
    <Setter Property="ScrollViewer.ZoomMode" Value="Disabled" />
</Style>

然后你像这样包装ListView:

<ScrollViewer Style="{StaticResource VerticalScrollViewerStyle}">
    <ListView ...>
        ...
    </ListView>
</ScrollViewer>

这样就不会使用ListView的内部ScrollViewer,这似乎可以解决您的问题.现在,ListView的某些功能可能存在一些问题,这些功能依赖于要使用的内部ScrollViewer(例如增量加载).你将测试它,你会看到你需要什么工作.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读