WPF: Как получить объект из списка ListBox под указателем мыши
Это может понадобиться, например, при реализации функциональности DragAndDrop. Напишем метод, возвращающий объект или NULL, если объекта нет:
''' <summary>' ''' Возвращает элемент списка ListBox, находящийся под указателем мыши.' ''' </summary>' ''' <param name="lb">Список.' ''' <param name="p">Позиция курсора. Обычно e.GetPosition(lb), где е type of DragEventArgs.' Private Function getDataFromListBox(ByVal lb As ListBox, ByVal p As Point) As Object Dim element As UIElement = TryCast(lb.InputHitTest(p), UIElement) If element IsNot Nothing Then Dim data As Object = DependencyProperty.UnsetValue Do While data Is DependencyProperty.UnsetValue data = lb.ItemContainerGenerator.ItemFromContainer(element) If data Is DependencyProperty.UnsetValue Then element = CType(VisualTreeHelper.GetParent(element), UIElement) End If Loop If data IsNot DependencyProperty.UnsetValue Then Return data End If End If Return Nothing End Function