专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > Windows Mobile

手指头离开屏幕时scrollviewer内容弹回

发布时间:2010-05-30 00:20:59 文章来源:www.iduyao.cn 采编人员:星星草
手指离开屏幕时scrollviewer内容弹回
当手指拖动scrollviewer时 里面的内容随着手指一起移动 但是当手指从屏幕上放开时 scrollviewer里的内容又弹回去了 
于是我自己做了一个空页面 放scrollviewer 拖动却是正常的 手指离开屏幕时不会弹回
还有我在研究这个问题的时候发现还有个ScrollContentPresenter控件 说明上说是给scrollviewer 提供内容的
为什么要有这个控件呢 
------解决方案--------------------
你需要给scrollviewer一个高度。
------解决方案--------------------
是的,给scrollviewer一个高度。 
------解决方案--------------------
1.如果需求是 手指离开就要弹回去,可以写在_ManipulationCompleted事件中,将scrollviewer d VerticalOffset 设为0
scrollView.ScrollToVerticalOffset(0);
2.如果需求是 滚动停止时,弹回去,可以去扑捉滚动状态改变事件
FrameworkElement element = VisualTreeHelper.GetChild(scrollView, 0) as FrameworkElement;
                if (element != null)
                {
                    VisualStateGroup visualStateGroup = FindVisualState(element, "ScrollStates");
                    visualStateGroup.CurrentStateChanged += visualStateGroup_CurrentStateChanged;
                }

       private VisualStateGroup FindVisualState(FrameworkElement element, string name)
        {
            if (element == null)
                return null;

            IList groups = VisualStateManager.GetVisualStateGroups(element);
            foreach (VisualStateGroup group in groups)
            {
                if (group.Name == name)
                {
                    return group;
                }
            }
            return null;
        }

当状态为停止时 去设scrollView的VerticalOffSet
        private void visualStateGroup_CurrentStateChanged(object sender, VisualStateChangedEventArgs e)
        {
              var visualState = e.NewState.Name;
              if (visualState == "NotScrolling")
              {
                  scrollView.ScrollToVerticalOffset(0);   
              }
        }
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: