我有一个全景页面。如何找出哪一方用户滑动全景?我需要知道滑动的方向
void DialogPanorama_ManipulationStarted(object sender, ManipulationStartedEventArgs e)
{
int selectedIndex = this.DialogPanorama.SelectedIndex;
int count = this.DialogPanorama.Items.Count;
for (int i = 0; i < count; ++i)
{
{
FeedItemViewModel curItem = this.DialogPanorama.Items[i] as FeedItemViewModel;
if (curItem != null)
{
if (Math.Abs(i - selectedIndex) > 1 && Math.Abs(Math.Abs(i - selectedIndex) - count) > 1)
{
curItem.ItemVisibility = System.Windows.Visibility.Collapsed;
}
else
{
curItem.ItemVisibility = System.Windows.Visibility.Visible;
}
}
}
}
}
更新
我认为应该用这个来完成:
Point startPoint = e.ManipulationOrigin;
MouseState ms = Mouse.GetState();
答案 0 :(得分:3)
我要做的是在2个不同时刻(短)获得触摸的坐标。 如果坐标B的横坐标高于坐标A的横坐标,则用户想要向左滑动。 如果坐标B的横坐标最低于坐标A的横坐标,则用户想要向右滑动。
看看这里(获得触摸位置):
http://msdn.microsoft.com/en-us/library/bb197572.aspx
编辑其他方式:
简化推断幻灯片方向的方法:
private void Panorama_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
OldPage = ActualPage;
ActualPage = panorama.SelectedIndex;
MessageBox.Show("Old page: " + OldPage + "\n Actual Page: " + ActualPage);
if (OldPage < ActualPage)
MessageBox.Show("Direction of the slide: Right");
else if (OldPage > ActualPage)
MessageBox.Show("Direction of the slide: Left");
// else if( some other specific condition...)
}
private int OldPage { get; set; }
private int ActualPage { get; set; }