二十七、滚动刷新或加载更多
针对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) 编辑 收藏 举报