Я использую метод VisualTreeHelper FindElementsInHostCoordinates, чтобы найти ListBoxItem в заданном местоположении X и Y. Однако значения X и Y, по-видимому, связаны с точками на всей странице, а не только с интересующим меня ListBox (хотя я передаю этот элемент в параметр subtree метода). Ниже это относится к пользовательскому элементу управления, производному от ListBox.
foreach (UIElement element in VisualTreeHelper.FindElementsInHostCoordinates(new Point(X, Y), this))
{
if (element is ListBoxItem)
{
int index = this.ItemContainerGenerator.IndexFromContainer(element);
break;
}
}
Таким образом, (0,0) будет относиться к верхнему левому углу всего плагина, а не к верхнему левому углу ListBox. Нужно ли мне выполнять здесь какую-то математическую работу (в коде), чтобы преобразовать координаты страницы в координаты ListBox, или есть какой-то другой способ выполнить проверку нажатия, чтобы определить, находится ли заданная точка X и Y над ListBoxItem? *
Спасибо.