none
如何精确取得ListBox中滚动条(ScrollBar.Value)的时实位置?请指点迷津,我的可锁定组头的LongListSelector 就差这一点就完美了。 RRS feed

  • 问题

  • 我现在ScrollBar的ValueChanged事件里加入了代码,时实输入它的value

    ListBox里绑定了三百多条数据,当我用手指放在屏幕上拖动时(一直按下状态),只有移动大概一百像素,过去才会引发ValueChanged事件,所以造成分组并不是很精确,以下是输出的值,

    2.42372881355932 ValueChanged
    5.22033898305085 ValueChanged
    7.98305084745763 ValueChanged
    10.5084745762712 ValueChanged
    11.6984883971133 ValueChanged

    请问如何可以取得到更高精度的值呢?目前代码如下所示

      private void button1_Click(object sender, RoutedEventArgs e)
           
    {
               
    var scrollBarlist = new List<ScrollBar>();
               
    GetChildren(myListBox, ref scrollBarlist);

               scrollBarlist[0].ValueChanged += CitySelect_ValueChanged;

               Debug.WriteLine(scrollBarlist[0].Value + " ValueChanged ");
           
    }
           
    private IList<ScrollBar> GetChildren(UIElement element, ref List<ScrollBar> list)
           
    {
               
    int count = VisualTreeHelper.GetChildrenCount(element);
               
    for (int i = 0; i < count; i++)
               
    { DependencyObject child = VisualTreeHelper.GetChild(element, i);
                   
    if (child is ScrollBar)
                   
    {
                        list
    .Add((ScrollBar)child);
                   
    }
                   
    UIElement uiElementChild = child as UIElement;
                   
    if (uiElementChild != null)
                   
    {
                       
    GetChildren(uiElementChild, ref list);
                   
    }
               
    }
               
    return list;
           
    }

    2012年5月29日 2:20

全部回复

  •   void CitySelect_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
      {

        Debug.WriteLine(scrollBarlist[0].Value + " ValueChanged ");
       }

    2012年5月29日 3:11
  • 你好,

    ScrollBar.ValueChanged属性没有特别精确,这个是by design的。

    欢迎你将你对window phone产品的建议递交到这个网址

    http://wpdev.uservoice.com/forums/136284-app-platform-%E4%B8%AD%E5%9B%BD

    同时,我还没有特别理解你要精确捕捉ScrollBar.ValueChange的具体目的是什么,可以再详细描述一下,我们看看能不能找一个解决方案。

    2012年5月30日 6:31
  • 我也遇到了类似的问题, 其实就是想实现scrollviewer联动的问题,就是平时我们所说的锁表头和锁列头的功能 请问在WP7里面有什么实现方法吗
    2012年8月9日 8:32
  • 请问你现在这个问题解决了吗  解决了话可以共享下思路吗  我也正在实现这个功能 但是总是不能实现很流畅的联动
    2012年8月9日 8:33
  • http://blog.csdn.net/zl1911/article/details/7619392   最终非完美的解决方案
    2013年2月25日 8:37