2012-07-30 11 views
5

Nie jestem pewien, dlaczego, ale zdarzenia upuszczania kropli na HwndHost nie działają (właściwie żadne zdarzenia nie działają w ogóle). Jestem w stanie podłączyć się do komunikatów Windows wychodzących do HwndHost, jednak nie mogę znaleźć niczego przydatnego.WPF HwndHost Przeciągnij i upuść

Próbuję przeciągnąć węzeł z widoku drzewa na obiekt HwndHost obsługujący XNA. Ustawiłem AllowDrop na true na HwndHost, ale wydaje się, że nic nie robi. Czy ktoś wie, w jaki sposób mogę włączyć HwndHost być celem operacji przeciągania/upuszczania?

Dzięki!

+0

chciałbym spojrzeć na uzyskanie dll expression.interactivity który pozwala dzwonić przeciągania i upuszczania w viewmodel. Jest to jeden z łatwiejszych sposobów implementacji przeciągania i upuszczania z wpf..just google expression interactivity dla wpf drag and drop. Mam nadzieję, że to pomaga :) – TMan

+0

Tak, mam ten sam problem. Mam już pełną architekturę opartą na AttachedEvents w Wpf i potrzebuję ponownie użyć tej samej architektury dla mojej klasy pochodnej HwndHost. Zaimplementowałem już wszystkie klasy przeciągania i upuszczania OLE (w języku C++/cli) w celu interakcji z infrastrukturą przeciągania i upuszczania systemu Windows, ale nie mogę przenosić zdarzeń do WPF z powodu wewnętrznego konstruktora DragEventArgs. – nemenos

+1

Cóż, znalazłem super hacky obejście. Jeśli dziecko HwndHost do DockPanel i ustawić AllowDrop na DockPanel, można odpowiedzieć na zdarzenia tam, zamiast na HwndHost. DockPanel musi jednak mieć tło. Próbowałem go z innymi ramkami/kontrolkami i tylko DockPanel działał. – Trevor

Odpowiedz

0

Czy to zachowanie działa tylko podczas debugowania?

Czy używasz programu Visual Studio jako administrator?

Jeśli tak, ostatnio wpadłem na ten problem. Wypróbuj go bez debugowania, jeśli to działa, musisz uruchomić aplikację, a następnie dołączyć do niej, aby debugować kod przeciągania i upuszczania.

Jest to funkcja zabezpieczeń w Windows:/

Powiązane problemy