none
gridview或者listview在item拖拽过程中也就是cross-slide时,再触碰一下gridview或者listview控件,会出现bug RRS feed

  • 问题

  • gridview或者listview在item拖拽过程中也就是cross-slide时,再触碰一下gridview或者listview控件,会出现ui卡住现象,拖拽的item会位于gridview下方,无法再拖拽。
    2012年8月12日 10:01

答案

  • 有没有确认这个问题?

    我们这里是一台支持两点的触摸显示器,并没有重现出来。由于条件有限,可能需要我们一起在英文论坛发布一个帖子,看看有没有类似的问题和是否有方案可以解决。 http://social.msdn.microsoft.com/Forums/en-US/winappswithcsharp/threads

    我可以帮助你做下翻译:

    Dragging items in GridView or ListView (CanDragItems="True" CanReorderItems="True" AllowDrop="True"), when the item is dragged at the cross-slide, do not release your finger, we use the other figer to touch the GridView or ListView control, the UI will stop reponse, and show the dragged item behind the GridView control.


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us

    • 已标记为答案 kande_1988 2012年8月21日 5:46
    2012年8月15日 7:36
    版主

全部回复

  • 请问具体的代码以及步骤是怎么样的?


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us

    2012年8月13日 3:41
    版主
  • 代码就是很简单的设置了gridview的拖拽三个属性 CanDragItems="True" CanReorderItems="True" AllowDrop="True"

    这个bug好像只能在平板上测试才能测得出来。

    1、长按某个item选项,开始拖动,也就是cross-slide过程

    2、等item离开原来位置之后,未放置到新位置之前,用另一个手点击gridview

    3、这时候放开两只手,就会看到item被拖离开原来位置,卡住中间,任何操作都无效,只有关闭程序

    因为模拟机上面不知道怎么弄多点触控,所以无法在模拟机上面重现这个bug

    2012年8月13日 5:26
  • 还真是模拟器测试不出来,模拟器要么模拟一个点操作,要么就是双点缩放或者旋转操作。 很遗憾,我这里缺少触摸设备来帮你测试,可能需要请求我的同事的帮忙来确认这个问题了。


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us

    2012年8月13日 7:03
    版主
  • 如果可以的话能不能让你同事帮忙来解决下这个问题。

    我一开始怀疑是动画卡住了,刚才我将所有动画全都移除,但是问题依旧。

    不知道gridview item拖拽的内部机制是如何实现的?

    或者我在想能不能禁止多点触控?让平板像模拟器一样?

    2012年8月13日 7:11
  • 有没有确认这个问题?
    2012年8月15日 0:41
  • 请问如何捕捉item拖放到的新位置,以及如何将item嵌入到拖放的新位置,并且使得整个grid的item向前进行补充动画
    2012年8月15日 3:45
  • 只要设置了这三个属性CanDragItems="True" CanReorderItems="True" AllowDrop="True",便可以做到你要求的。至于捕捉拖放到新位置,只能在itemcontain的changeitem事件里面获取或者你重写一下collection集合,为集合增加inserted事件也可以捕捉到
    2012年8月15日 6:49
  • 有没有确认这个问题?

    我们这里是一台支持两点的触摸显示器,并没有重现出来。由于条件有限,可能需要我们一起在英文论坛发布一个帖子,看看有没有类似的问题和是否有方案可以解决。 http://social.msdn.microsoft.com/Forums/en-US/winappswithcsharp/threads

    我可以帮助你做下翻译:

    Dragging items in GridView or ListView (CanDragItems="True" CanReorderItems="True" AllowDrop="True"), when the item is dragged at the cross-slide, do not release your finger, we use the other figer to touch the GridView or ListView control, the UI will stop reponse, and show the dragged item behind the GridView control.


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us

    • 已标记为答案 kande_1988 2012年8月21日 5:46
    2012年8月15日 7:36
    版主
  • 发了帖子,英语不是很好,哈哈。。感谢您的翻译。http://social.msdn.microsoft.com/Forums/en-US/winappswithcsharp/thread/a713e672-cd44-4737-8abf-a213cddaad94

    您那边的显示器,当右手拖拽出item的时候,左手去滚动gridview或者listview的滚动条,会出现什么情况?对了。我用的itempanel是wrapgrid

    2012年8月15日 9:11
  • 我是在一个用了分组的gridview内部进行拖动的,但是不知道如何获取拖动的item drop的具体位置,就像桌面那样,想拖放到哪就能插到那个位置,请问具体的实现是怎么样的?itemGridView.ItemContainerGenerator.ItemsChanged 事件在gridview加载的时候能触发,但是在gridview内部拖动时却捕捉不到


    2012年8月16日 2:32
  • 不会啊。。拖动的时候能捕捉到的。。你确定你设置了那三个属性?
    2012年8月16日 7:42
  • 不好意思。。。发现你用的是分组gridview。分组我没用过。你可以自己发个贴子问问论坛里的其他人。
    2012年8月16日 8:09
  • 嗯,在问了,谢谢
    2012年8月16日 8:34
  • 感谢你的关注和回答。我安装了RTM版,微软已经修复了这个bug,当我拖拽着一个item的时候,另一个手去滑动gridview,会自动将item回归到原来位置
    2012年8月21日 5:46