0

操作(したがってドラッグアンドドロップ)を処理するいくつかのイベントがあります。

  • ManipulationStarting
  • ManipulationStarted
  • ManipulationDelta
  • ManipulationInertiaStarting
  • ManipulationCompleted

ManipulationStartingイベントで、イベント引数(タイプManipulationStartingRoutedEventArgs)を使用すると、Mode属性をManipulationModes.Noneに設定できます。これは、操作が許可されていないため、ドラッグアンドドロップが許可されていないことを意味しますか?

公式のXAMLユーザー入力イベントサンプルアプリケーション、特にシナリオ4(ドラッグアンドドロップ)で遊んでいたときに、奇妙な動作に遭遇したため、質問しています。

Sequence4.xaml.csのManipulationStartingイベントでModeをManipulationModes.Noneに設定するだけです。

void ManipulateMe_ManipulationStarting(object sender, ManipulationStartingRoutedEventArgs e)
{
    forceManipulationsToEnd = false;
    e.Mode = ManipulationModes.None;   // <-- this is new
    e.Handled = true;
}

それでも、ドラッグを3回試みるたびに、長方形をドラッグできます。これを示すためにビデオを録画しました:http ://www.youtube.com/watch?v=psytuTailHg 。

この問題は、このサンプルだけでなく、私自身のアプリケーションでも発生します。

質問:

  • なぜそんな奇妙な振る舞いがあるのでしょうか?
  • ドラッグアンドドロップイベントをキャンセルする最良の方法は何ですか(たとえば、いくつかの条件が満たされていない場合)?
4

1 に答える 1

1

たとえば、グリッドビューでは、DragItemStartingイベントを実装し、e.Cancel = true;この動作を防ぐように設定できます。これはニーズを満たしていませんか?

于 2012-12-21T12:45:01.823 に答える