私は次のコードを持っています:
public MainPage()
{
this.InitializeComponent();
this.ManipulationStarting += MainPage_ManipulationStarting;
this.ManipulationStarted += MainPage_ManipulationStarted;
this.ManipulationInertiaStarting += MainPage_ManipulationInertiaStarting;
this.ManipulationDelta += MainPage_ManipulationDelta;
this.ManipulationCompleted += MainPage_ManipulationCompleted;
}
void MainPage_ManipulationStarting(object sender, ManipulationStartingRoutedEventArgs e)
{
Debug.WriteLine("MainPage_ManipulationStarting");
}
void MainPage_ManipulationStarted(object sender, ManipulationStartedRoutedEventArgs e)
{
Debug.WriteLine("MainPage_ManipulationStarted");
}
void MainPage_ManipulationInertiaStarting(object sender, ManipulationInertiaStartingRoutedEventArgs e)
{
Debug.WriteLine("MainPage_ManipulationInertiaStarting");
}
void MainPage_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)
{
Debug.WriteLine("MainPage_ManipulationDelta");
}
void MainPage_ManipulationCompleted(object sender, ManipulationCompletedRoutedEventArgs e)
{
Debug.WriteLine("MainPage_ManipulationCompleted");
}
しかし、操作イベントの使用方法についてはわかりません。誰かが上、下、左、右にスワイプするジェスチャーを処理する方法を説明できますか?
操作イベントは、変換値を提供します。マニピュレーションデルタは、慣性とともに操作が完了するまで継続的に発砲します。このイベントでは、動きが慣性であるかどうかを確認し(通常の動きはスワイプと見なされるべきではありません)、初期位置と現在位置の違いを検出します。
しきい値に達したら、上/下/左/右にスワイプイベントを発生させます。同じ操作が何度も発生しないように、操作をすぐに停止してください。
次のコードはあなたを助けるでしょう、
private Point initialpoint;
private void Grid_ManipulationStarted_1(object sender, ManipulationStartedRoutedEventArgs e)
{
initialpoint = e.Position;
}
private void Grid_ManipulationDelta_1(object sender, ManipulationDeltaRoutedEventArgs e)
{
if (e.IsInertial)
{
Point currentpoint = e.Position;
if (currentpoint.X - initialpoint.X >= 500)//500 is the threshold value, where you want to trigger the swipe right event
{
System.Diagnostics.Debug.WriteLine("Swipe Right");
e.Complete();
}
}
}
私はXAML愛好家の答えを試してみましたが、私にはそれほど正確ではありませんでした(IsIntertialは常に間違って戻ってきました)。私は別の何かを試したい人のために別の何かを実装しました(ここで関連トピックの以前の投稿に返信しました Windows 8グリッドでのスワイプゲスト操作の処理 )。
GestureRecognizer 。CrossSlidingイベントを見てください。 EdgeGesture クラスとサンプルもあります: EdgeGesture sample 、 gestures sample 。