1

GiveFeedBackイベントとQueryContinueDragWPF または WinFormsの違いは何ですか?

私が読んでいる本には次のように書かれています。

  • GiveFeedBack: ユーザーがカスタム マウス ポインターを設定する機会を提供します。
  • QueryContinueDrag: ドラッグ ソースがドラッグ イベントをキャンセルする必要があるかどうかを判断できるようにします。

MSDN は、 「ドラッグ ソースがドラッグされている間、継続的に」両方のイベントが発生すると付け加えています。

では、なぜこの分離が存在するのでしょうか。QueryContinueDrag イベント内からカスタム マウス ポインタを設定することもできますか?

4

1 に答える 1

2

基本的に、e.Effectsプロパティを (DragEventArgsクラスから) に設定DragDropEffects.Noneして、それを公開するハンドラーからのドラッグ アンド ドロップ操作をキャンセルできます。PreviewDropPreviewDragOver。したがって、私の意見では、あなたは正しいです....ハンドラーでそれを行う必要はありません。QueryContinueDrag

実際、私は完全に機能するドラッグ アンド ドロップ システムを使用して、グラフィカルな装飾をすべて実現しており、ハンドラーをまったくAttached Properties実装していません。QueryContinueDrag

ただし、カーソルをカスタム カーソルに変更する場合は、ハンドラーを実装する必要あります。GiveFeedBackGiveFeedbackEventArgs

private void PreviewGiveFeedback(object sender, GiveFeedbackEventArgs e)
{
    Mouse.SetCursor(Cursors.No);
    e.Handled = true; // Important! - Hides the normal drag and drop cursors
}
于 2013-08-20T16:13:52.740 に答える