Czy istnieje sposób z WPF, aby uzyskać tablicę elementów pod myszą w przypadku MouseMove?WPF Pobierz element (y) pod mysz
Odpowiedz
Od "WPF Unleashed", strona 383:
Badania wizualne hitem może poinformować o wszystkie
Visual
s, które przecinają lokalizacja, [...] należy użyć [...] metoda akceptująca delegata[VisualTreeHelper.]HitTest
. Przed zwróceniem tej wersji tej wersjiHitTest
delegat jest wywoływany jeden raz dla każdego odpowiedniego , zaczynając od najwyższego i kończąc na najniższym.
Podpis takiego zwrotnego jest
HitTestResultBehavior Callback(HitTestResult result)
i musi powrócić HitTestResultBehaviour.Continue
otrzymywać dodatkowe uderzenia, jak pokazano poniżej (z połączonego strony na MSDN):
// Return the result of the hit test to the callback.
public HitTestResultBehavior MyHitTestResult(HitTestResult result)
{
// Add the hit test result to the list that will be processed after the enumeration.
hitResultsList.Add(result.VisualHit);
// Set the behavior to return visuals at all z-order levels.
return HitTestResultBehavior.Continue;
}
Aby uzyskać więcej informacji, zapoznaj się z MSDN documentation for VisualTreeHelper.HitTest
.
Czy można korzystać z VisualTreeHelper.HitTest?
http://lukieb.blogspot.com/2008/07/visualtreehelperhittest.html
Przeciążenie używane w połączonym przykładzie ([prawdopodobnie powinno być również replikowane bezpośrednio w odpowiedzi) (http://meta.stackexchange.com/questions/8231/are-answers-that-just-contain- links-elsewhere-really-good-answers)) tylko znajdzie najwyższy element w lokalizacji myszy, ** nie ** tablicę elementów pod myszą. –
Można również spróbować użyć właściwość Mouse.DirectlyOver aby uzyskać najwyższej największy element, który jest pod mysz.
To ** nie ** zapewni tablicę elementów pod myszą, ale rzeczywiście tylko zwróci najwyższy element. –
Zobacz poniższy link msdn (sekcja: Używanie połączenia zwrotnego wyników testu uderzenia) jako dobry przykład. [http://msdn.microsoft.com/en-us/library/ms752097.aspx](http://msdn.microsoft.com/en-us/library/ms752097.aspx) –
Page 503 w edycji 2010 książka. FYI. – Sabuncu
Zwróć uwagę, że dostajesz wizualny element drzewa, który w większości przypadków nie jest tym, czego potrzebujesz. Musisz przeszukiwać rodziców rekursywnie, aby uzyskać logiczne elementy widoku. – henon