wp7高级容器怎么动态更新数据
- 时间:2015年04月02日 15:30:03 来源:魔法猪系统重装大师官网 人气:18697
全景视图Panorama 这里面最有意思的就是这个背景图片了。。会随着你的移动而移动,视觉效果非常的好,右边还会提示下一页的内容,当然这个内容展示就像一个圈一样,没有尽头。可以一直翻
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
枢轴视图Pivot的用法,类似于我们操作系统的菜单
1
2
3
4
5
6
7
8
9
10
11
12
13
14
ScrollViewer用于显示大内容,显示尺寸不够则可以通过滚动条控制。HorizontalScrollBarVisibility、VerticalScrollBarVisibility控制滚动条显示
1
2
3
4
5
6
7
8
9
10
如果我们想在用户拉到最底下时动态的更新新的数据,想微博那样一直往下拉,会加载新的内容,我们可以在下拉到底部的时候给控件注册个事件来达到我们的需求
1 ScrollViewerMonitor svm = new ScrollViewerMonitor(sv1);
2 svm.AtEnd += new EventHandler(svm_AtEnd);
3 }
4
5 void svm_AtEnd(object sender, EventArgs e)
6 {
7 for (int i=0; i < 10; i++)
8 {
9 Button btn = new Button();
10 btn.Content = Guid.NewGuid().ToString().Substring(0, 5);
11 wp1.Children.Add(btn);
12 }
13 }
下面是ScrollViewerMonitor类的内容,
动态监视scrollViewer.VerticalOffset的值当它超过本身的高度的时候就触发AtEnd 事件,我们可以在外部注册这个事件!
1 public class ScrollViewerMonitor
2 {
3 private ScrollViewer scrollViewer;
4
5 private static int index;
6
7 public ScrollViewerMonitor(ScrollViewer scrollViewer)
8 {
9 this.scrollViewer = scrollViewer;
10
11 var property = DependencyProperty.RegisterAttached("DependencyPropertyListener" + index++,
12 typeof(double), typeof(ScrollViewer), new PropertyMetadata(scrollViewerVerticalOffset_Changed));
13
14 Binding binding = new Binding("VerticalOffset") { Source = scrollViewer };
15 scrollViewer.SetBinding(property, binding);
16 }
17
18 public event EventHandler AtEnd;
19
20 private void scrollViewerVerticalOffset_Changed(DependencyObject d, DependencyPropertyChangedEventArgs e)
21 {
22 bool atBottom = scrollViewer.VerticalOffset
23 >= scrollViewer.ScrollableHeight;
24
25 if (atBottom)
26 {
27 if (AtEnd != null)
28 {
29 AtEnd(this, EventArgs.Empty);
30 }
31 }
32 }
33 }