4

ここで奇妙な問題があります。ツールウィンドウを備えたVisualStudioIntegration Package/VSIXプロジェクトのウィザードを使用して簡単なプラグインを作成しました。そのウィンドウ内で、リストボックスから単純なドラッグアンドドロップを実行し、同じウィンドウ内にドロップします。通常のWPFプログラムでも同じことをしましたが、WSツールウィンドウでこれを行うと許可されません。PreviewMouseLeftButtonDown(イベントによって開始される)ドラッグアンドドロップ操作を開始し、DragDrop.DoDragDrop()メソッドを呼び出すと、一時停止の標識カーソルがすぐに取得されます。ドラッグは許可されていません。

何か案は?セキュリティの制限、またはこれらのWPFコントロールがToolWindowPane内でホストされているという事実の影響と私が推測する古いVisual Studio IDE COMのもの...助けてくれてありがとう!

4

1 に答える 1

6

MicrosoftのAlinConstantinは、ここで私を助けてくれました。また、VS2010内でドラッグ/ドロップを適切に行う方法についてのブログ投稿も書いています。

http://alinconstantin.blogspot.com/2010/02/drag-and-drop-in-visual-studio-2010.html


リンク切れの場合のハイライト:

OnDragEnterツールウィンドウ(UserControl)で、、OnDragOver重要!)およびをオーバーライドしますOnDrop。オーバーライドOnDragOverに失敗すると、ドラッグ/ドロップが失敗します。

OnDragEnterで、次の手順を実行します。

  1. ドロップを処理できるかどうかを確認してください
  2. その場合は、適切な値に設定DragEventArgs.HandledしますtrueDragEventArgs.Effects
  3. 電話base.OnDragEnter()

では、と同じことOnDragOver行う必要があります。設定に失敗すると、Visual Studioが引き継ぎ、ドロップを処理できなくなります。OnDragEnterHandled

OnDrop

  1. ドロップを処理します
  2. DragEventArgs.Handledに設定true
  3. 電話base.OnDrop()

処理しないOnDragOverと、Visual Studioがドラッグ操作を引き継ぎ、で処理する機能が拒否されることに注意してくださいOnDrop

于 2010-02-05T08:27:04.560 に答える