zoukankan      html  css  js  c++  java
  • WinRT下GirdView和ListView控件疑难杂症小结

    这几天把我的看漫画的程序的界面调整了一下,在使用GirdView和ListView过程中遇到了不少问题,这里把解决方法记录一下,免得以后少走弯路。

    1.ItemsSource绑定后ScrollViewer不复位

    ItemsSource绑定后ScrollViewer不复位,有的时候我们需要这一效果,但大多数情况下我们是想让它复位的。在WPF中也有这个问题,我在以前的blog文章中也给出了一种解决方法。在WinRT下解决方法也差不多,在重新绑定数据源前加上这段代码即可:

        if (gridView.Items.Count > 0)
        {
            gridView.ScrollIntoView(gridView.Items[0], ScrollIntoViewAlignment.Leading);
        }

    这里我就不给依赖属性的封装了,感兴趣的朋友可以自己封装下。

     

    2.ScrollViewer的HorizontalSnapPointsType设置为Mandatory或MandatorySingle时最右边一栏拖动不过来

    我比较喜欢将ScrollViewer设置为Mandatory或MandatorySingle,这样滚动项有一种类似磁性的吸靠效果。但这样有一个问题:如果滚动项宽度不一样的时候,最右边一项很容易拖不出来(垂直滚动时也有同样的问题)

    这个问题的原因是右侧没有足够的空白空间,因此改一下ItemsPresenter布局,给右边留一定的空余空间即可:

        <GridView.Template>
            <ControlTemplate TargetType="GridView">
                <Border >
                    <ScrollViewer x:Name="ScrollViewer" >
                        <ItemsPresenter Margin="0,0,
    150,0" HeaderTemplate="{TemplateBinding HeaderTemplate}" />
                    </ScrollViewer>
                </Border>
            </ControlTemplate>
        </GridView.Template>

    这里我的150只是我程序中缺少的空间,大家修改的时候应根据具体情况选择合适的值。另外,这个问题只要使用ScrollViewer就会出现,并不限定于ListView和GridView,解决原理类似。

     

    3.使用ISupportIncrementalLoading的时候有时不会自动增量加载

    这个问题主要是用WrapGrid作为Panel的时候有问题,用其它的Panel貌似没有这跟我问题。另外,像我前面的代码那样更改布局也会导致比较容易出,可能和我的IsupportIncrementalLoading实现方式也有关系。目前原因不明,不过设置IncrementalLoadingThreshold貌似能比较有效的解决这一问题。

        <GridView IncrementalLoadingThreshold="2" >

    这个数字主要控制预加载的次数,因此不要设置的过大,如果出现这个问题建议先设置为1,如果不行的话再设置为2,再不行设置更大估计也没用什么效果。

     

    4.使用ISupportIncrementalLoading的时候重新绑定ItemsSource不加载

    这个问题原因也没用找到,估计还是和和我的IsupportIncrementalLoading的实现方式有关系,关于IsupportIncrementalLoading,目前也找不到太多的资料。目前的规避方案是:创建IsupportIncrementalLoading对象时,先自动加载一页,后续就会自动加载了

     

  • 相关阅读:
    FastDFS
    MYSQL日常操作
    SVN安装
    mysql主主配置
    MySQL优化
    nginx反向代理tomacat+keepalived实现动静分离、负载均衡、高可用
    nginx故障及处理
    nginx配置检测及安全配置
    nginx基本优化
    大金空调适配器
  • 原文地址:https://www.cnblogs.com/TianFang/p/2752575.html
Copyright © 2011-2022 走看看