面朝大海 春暖花开

天行健,君子以自强不息; 地势坤,君子以厚德载物; 宠辱不惊,闲看庭前花开花落; 去留无意,漫随天外云卷云舒。 不妄取,不妄予,不妄想,不妄求, 与人方便,随遇而安。 ——《周易》

导航

二十七、滚动刷新或加载更多

针对GridView和ListView而言

看xaml文件中有没有定义ScrollViewer控件。

如果有,则在LoadState方法的第一行加上itemGridView.SizeChanged += itemGridView_SizeChanged;

 void itemGridView_SizeChanged(object sender, SizeChangedEventArgs e)

        {

            ScrollBar sb = FindVisualChildByName1<ScrollBar>(ScrollViewer在xaml的Name, "HorizontalScrollBar");

            sb.ValueChanged += sb_ValueChanged;

        }    

如果没有,判断是全屏还是贴靠。

如果是全屏,则在LoadState方法的第一行加上itemGridView.SizeChanged += itemGridView_SizeChanged;

void itemGridView_SizeChanged(object sender, SizeChangedEventArgs e)
        {
            ScrollViewer sv = JinHongBlog.Utils.Scrolling.FindVisualChildByName<ScrollViewer>(xaml根标签的Name, "ScrollViewer"); //先找到ScrollViewer
            ScrollBar sb = JinHongBlog.Utils.Scrolling.FindVisualChildByName<ScrollBar>(sv, "HorizontalScrollBar");
            sb.ValueChanged += sb_ValueChanged;

        }

如果是贴靠,则 在LoadState方法中加上Window.Current.SizeChanged += Current_SizeChanged;

//判断是否为贴靠的状态

 void Current_SizeChanged(object sender, Windows.UI.Core.WindowSizeChangedEventArgs e)
        {
            var currentViewState = Windows.UI.ViewManagement.ApplicationView.Value;
            if (currentViewState == ApplicationViewState.Snapped)
            {
                itemListView.SizeChanged += itemListView_SizeChanged;
            }
          
        }

void itemListView_SizeChanged(object sender, SizeChangedEventArgs e)
        {
         
            ScrollViewer sv = JinHongBlog.Utils.Scrolling.FindVisualChildByName<ScrollViewer>(贴靠时显示的ListView的Name, "ScrollViewer");
            ScrollBar sb = JinHongBlog.Utils.Scrolling.FindVisualChildByName<ScrollBar>(sv, "VerticalScrollBar");
            sb.ValueChanged += sb_ValueChanged;

        }

posted on 2013-01-24 16:26  gentle_girl  阅读(580)  评论(0编辑  收藏  举报