确定转轴轻弹并在Windows Phone 7中向右或向左拖动?

时间:2012-02-22 09:16:07

标签: windows-phone-7

我在页面中有一个Pivot控件。

<controls:Pivot x:Name="pvtSearchFlights">
                <toolkit:GestureService.GestureListener>
                    <toolkit:GestureListener DragCompleted="GestureListener_DragCompleted" Flick="GestureListener_Flick"   />
                </toolkit:GestureService.GestureListener>
                <controls:PivotItem x:Name="pvtItemCurrent">
                    <StackPanel Height="700" Background="AliceBlue">
                    </StackPanel>
                </controls:PivotItem>
                <controls:PivotItem x:Name="pvtItemNext">
                    <StackPanel Height="700" Background="Red">
                    </StackPanel>
                </controls:PivotItem>
                <controls:PivotItem x:Name="pvtItemPrevious">
                    <StackPanel Height="700" Background="Green">
                    </StackPanel>
                </controls:PivotItem>
            </controls:Pivot>

在这里,我可以通过以下代码找到是否正确或左侧轻弹:

private void GestureListener_Flick(object sender, FlickGestureEventArgs e)
        {
            if (e.Angle > 90 && e.Angle < 270)
            {
                txtTest.Text = "right";
            }
            else 
            {
                txtTest.Text = "left";
            }
        }

如果我拖动枢轴枢轴控件,则枢轴项目正在更改但不会触发GestureListener_Flick事件,因为它是一个拖动事件(此处它触发了GestureListener_DragCompleted事件)。因此,当我拖动时,我必须找到它是向左还是向右拖?

这里我的主要目的是找出枢轴是从右向左还是从左向右移动?

如何查找是向左还是向右拖动?

提前致谢。

1 个答案:

答案 0 :(得分:2)

如何存储Pivot的当前索引并添加SelectionChanged事件处理程序,然后只比较旧存储的索引和来自事件的新索引?

如果diff“new - old”为gt 0,则为右侧,如果diff为lt 0,则为向左。当old或new为0时,你必须处理特殊状态。