2012-01-13 7 views
0

私はユーザーコントロールにドラッグドロップ機能を実装しようとしています。ドロップされたusercontrolでコントロールを見つける最良の方法

Googleを使用して正常に動作するようになりましたが、コントロールを削除するときに、同じようなタイプのコントロールがあるかどうかを確認したい場合があります。

私の現在の方法は、すべてのコントロールをチェックして、ドロップされたコントロールの下にあるかどうかを確認することです。しかし、ある範囲内のコントロールをチェックできるコントロール機能のような、より良い方法があるのだろうか?

+0

が¿あなたは論理の谷を歩く意味ですか木? – NestorArturo

+0

私は、論理ツリーが何であるかを知るためには、論理ツリーを歩くことを意味するかもしれません。しかし、それは私が私のポストで言ったようにです。アプリケーションの同じ座標にあるコントロールを見つけて、すべてのコントロールをチェックする必要なしにコントロールをドロップすることができます。 –

答えて

1

を確認してください。 http://msdn.microsoft.com/en-us/library/system.windows.media.visualtreehelper.findelementsinhostcoordinates%28v=vs.95%29.aspx

void xy_MouseMove(object sender, MouseEventArgs e) 
    { 
     if (m_IsDraging) 
     { 
      var res = VisualTreeHelper.FindElementsInHostCoordinates(e.GetPosition(null), elemenetWhichChildrenYouWantToCheck); 
      //... check res for drop elements and react 
     } 
    } 

をそれとも、ただ唯一のMouseLeftButtonUpイベントでこの機能を使用することができます

+0

完璧に動作します! –

0

まあ..

  • まず、論理ツリーは、制御がで作られているサブコントロールの木です。
  • 第二に、あなたが使用することができ、この機能this post
関連する問題