none
scrollviewer PointerReleased 失效求解释 RRS feed

  • 问题

  • scrollviewer.PointerPressed += new PointerEventHandler(scrollviewer_PointerPressed); scrollviewer.PointerReleased += new PointerEventHandler(scrollviewer_PointerReleased);

    //移动停止
            void scrollviewer_PointerReleased(object sender, PointerRoutedEventArgs e)
            {


                mousendx = e.GetCurrentPoint(this).Position.X;
                distance = Math.Abs(mousstartx - mousendx);
                Debug.WriteLine("停止移动: 获取鼠标当前X :" + mousendx);
                Debug.WriteLine("鼠标在sview移动的距离是:" + distance);

            }
            //移动开始
            void scrollviewer_PointerPressed(object sender, PointerRoutedEventArgs e)
            {
                
                mousstartx = e.GetCurrentPoint(this).Position.X;
                Debug.WriteLine("启动发生 : 获取鼠标当前X :" + mousstartx); 
            }

    为什么ScrollViewer控件作为容器 他的PointerReleased就失效了呢?

    我如果需要得到它失去焦点的事件应该怎么做?


    2012年12月29日 6:03

全部回复

  • Hi,

    ScrollViewer对于移动手势等的处理比较特殊,个人理解应该是这个控件会优先将事件处理为关于滚动条的操作。你想要什么效果?我的建议就是不使用ScrollViewer或者是试试将滚动条disable掉。


    Aaron
    MSDN Community Support | Feedback to us
    Develop and promote your apps in Windows Store
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2013年1月1日 9:29
    版主
  • 我需要的效果是当手指在scrollviewer上边移动的时候获取到手指移动的距离。滚动条disable尝试过。没有达到我需要的效果。
    2013年1月4日 0:50