Переопределение метода HitTestCore для обнаружения нескольких элементов управления в WPF
-
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;
}