Ich benutze die VisualTreeHelper-Methode FindElementsInHostCoordinates, um ein ListBoxItem an der angegebenen X- und Y-Position zu finden. Der X- und Y-Wert scheint jedoch mit Punkten auf der gesamten Seite und nicht nur mit der ListBox, an der ich interessiert bin, in Beziehung zu stehen (obwohl ich dieses Element in den Teilbaumparameter der Methode übergebe). Dies bezieht sich auf ein benutzerdefiniertes Steuerelement, das von ListBox abgeleitet wird.FindElementsInHostCoordinates relativ zum Kontrollraum nicht ganze Seite
foreach (UIElement element in VisualTreeHelper.FindElementsInHostCoordinates(new Point(X, Y), this))
{
if (element is ListBoxItem)
{
int index = this.ItemContainerGenerator.IndexFromContainer(element);
break;
}
}
So, (0,0) würde an der oberen linken Ecke des gesamten Plug-In nicht der linken oberen Ecke des ListBox relativ sein. Muss ich hier selbst mathematisch arbeiten (im Code), um die Seitenkoordinaten in die ListBox-Koordinaten umzuwandeln, oder gibt es eine andere Möglichkeit, einen Hit-Test durchzuführen, um festzustellen, ob ein X- und Y-Punkt über einem ListBoxItem liegt?
Danke.
Sie könnten in Betracht ziehen, das schmucklose "silverlight" -Tag in Ihren zukünftigen Fragen zu verwenden, es bekommt mehr Augäpfel. – AnthonyWJones
Danke für den Tipp. Beschreibe in den Details einen anderen an den Teufel. :) – beaudetious