Рейтинг@Mail.ru

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
Подробнее ...
Подписаться на этот канал RSS
  1. Arduino это...
  2. Arduino это...
  3. Arduino это...
Отличный способ начать знакомство с электроникой, микроконтроллерами и программированием!
Замечательное средство для создания собственных электронных устройств, которые пригодятся в быту или для развлечения!
Уникальный конструктор, для которого разработаны десятки совместимых датчиков и модулей!
next
prev