Переопределение метода HitTestCore для обнаружения нескольких элементов управления в WPF

StackOverflow https://stackoverflow.com/questions/1185944

  •  19-09-2019
  •  | 
  •  

Вопрос

Я создаю пользовательский элемент управления, который проверяет попадание на своих дочерних элементах.Я планирую переопределить HitTestCore метод для возврата нескольких элементов управления, которые попадают внутрь геометрической области или пересекаются с ней.Просто интересно, пробовал ли кто-нибудь еще это.У вас есть какие-нибудь подсказки для меня?Или есть другой способ сделать это (без фактического переопределения HitTestCore метод)?Заранее благодарю за любую помощь.:)

Это было полезно?

Решение

Итак, мне удалось получить несколько элементов управления, похоже, мне не нужно было переопределять HitTestCore метод.

Я создал HitTestFilterCallback и всякий раз, когда он попадал в CheckBox (это был тип элемента управления, который я тестировал на попадание). Я сохранил его в списке под названием _hitTestResults.Но я не уверен, правильный ли это способ сделать это :S

Вот что я сделал:

HitTestFilterBehavior OnHitTestFilter(DependencyObject target)
    {
        if (target.GetType() == typeof(CheckBox))
        {
            _hitTestResults.Add(target as CheckBox); // add the hittest result
            return HitTestFilterBehavior.ContinueSkipChildren;
        }
        else
            return HitTestFilterBehavior.Continue;

    }
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top