5

droptargetWpf でのドラッグ中に、ドラッグされた項目を受け入れないことを示すためにマウス カーソル (またはおそらく装飾を使用) をどのように変更できますか?

e.Effects = DragDropEffects.Noneイベント中に設定しようとしましDragEnterたが、機能しません。その機能を何に使用するべきかを誤解していると思われます。イベントを使用してみましたが、缶がイベントにどのように影響するGiveFeedbackかわかりません。droptarget

4

3 に答える 3

7

ドロップ ターゲットの DragEnter で DragDropEffects を設定するだけで機能します。あなたの DragEnter も呼び出されていますか。ドロップ ターゲット コントロールに AllowDrop を設定しましたか?

これは、何が起こっているのかを理解するのに役立つかもしれないWPF(MSDNから取得)でのドラッグアンドドロップ中の一連のイベントです...

  1. ドラッグは、ソース管理の DoDragDrop メソッドを呼び出すことによって開始されます。

    DoDragDrop メソッドは 2 つのパラメーターを取ります。

    新しい DataObject オブジェクトが自動的に作成されます。

  2. これにより、GiveFeedback イベントが発生します。ほとんどの場合、GiveFeedback イベントについて心配する必要はありませんが、ドラッグ中にカスタム マウス ポインターを表示する場合は、ここにコードを追加します。
  3. AllowDrop プロパティが True に設定されているコントロールは、ドロップ ターゲットになる可能性があります。AllowDrop プロパティは、設計時に [プロパティ] ウィンドウで設定するか、Form_Load イベントでプログラムによって設定できます。
  4. マウスが各コントロールの上を通過すると、そのコントロールの DragEnter イベントが発生します。GetDataPresent メソッドを使用してデータの形式がターゲット コントロールに適切であることを確認し、Effect プロパティを使用して適切なマウス ポインターを表示します。
  5. ユーザーが有効なドロップ ターゲット上でマウス ボタンを離すと、DragDrop イベントが発生します。DragDrop イベント ハンドラーのコードは、DataObject オブジェクトからデータを抽出し、ターゲット コントロールに表示します。
于 2009-11-02T08:43:19.030 に答える
0

GiveFeedback ハンドラーでカーソルを変更したため、同様の問題が発生しました。このカーソルは、ドロップ ターゲットがデータを拒否した場合でも使用されました。デフォルトのカーソル (e.UseDefaultCursors = true) に戻した後、カーソルの形状は適切に「許可されていません」に変わりました。

于 2013-04-25T09:02:27.973 に答える