none
scrollviewer事件响应 RRS feed

  • 问题

  • 我现在在scrollviewer里面方式整齐排列的一组图片 比如4×5大小的矩阵 scrollviewer大小为屏幕大小 480×800 里面放置一个canvas,大小为4×5图片组总大小,实现类似地图拖动的功能:在往左拖动的时候,右边需要加载新的图片,但是scrollviewer好像没有自带的拖动结束的事件,我希望得到scrollviewer拖动结束以后(包括缓动结束)的移动距离,然后可以计算新的图片放置的位置。不知道怎么可以实现这样的功能?我新加了手势,比如flick,drag等,但是也没能成功。望大侠或者有经验的朋友给点建议。多谢先。
    2011年12月12日 8:47

答案

  • 你好,

    你可以使用MouseLeftButtonUp事件来判断图片是否拖拽完成。

    并且使用MouseDragElementBehavior来实现拖拽功能。在MouseLeftButtonUp事件中通过MouseDragElementBehavior的X和Y属性来得到当前图片的位置。

    xaml

                <Rectangle MouseLeftButtonUp="rectangle1_MouseLeftButtonUp" >
                 <i:Interaction.Behaviors>
                  <el:MouseDragElementBehavior x:Name="behavior"/>
                 </i:Interaction.Behaviors>
                </Rectangle>

    cs

            private void rectangle1_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
            {
                var a = behavior.X;
                var b = behavior.Y;
            }

     

    • 已标记为答案 Shi Ding 2011年12月19日 7:15
    2011年12月14日 9:38