Мне действительно нужна версия IsHitTestVisible, которая игнорирует события щелчка мыши, но все же ловушки мыши вводят и оставляют события.
Фон: Информационный оверлей всплывает под контролем с фокусом всякий раз. Это требование, поэтому я не имею права снимать это поведение. Это реализовано с помощью adorner, содержащего форму Rectangle, заполненную кистью изображения. Все элементы управления создаются программно, не задействовано XAML.
Желаемое поведение: Когда пользователь мыши над Rectangle, он должен стать частично прозрачным. Это значит, что они могут видеть другие элементы управления под наложением и нажимать на них. Когда пользователь нажимает на оверлей, клик должен быть передан любому элементу управления под наложением, прямо там, где пользователь щелкнул.
Проблема: Если я установил IsHitTestVisible в значение True, чтобы разрешить прохождение мыши, я не получаю события MouseEnter.
Есть ли простой способ оставить IsHitTestVisible True, а затем передать все, кроме 2-3 событий, правильному управлению под adorner? Я ищу решение, которое не включает вычисление того, что элемент управления находится под курсором, поскольку WPF явно способен сделать это для меня.
В качестве альтернативы, можно ли установить IsHitTestVisible в False, но затем использовать другой простой метод, чтобы определить, когда мышь находится над adorner?
ОБНОВЛЕНИЕ. Я все еще надеюсь на ответ, но на сегодняшний день наиболее перспективным решением является уход IsHitTestVisible в истину и использование API-интерфейсов тестирования WPF, чтобы выяснить, какой тип контроля находился под курсором мыши; если бы это был тот, о котором я знаю, я бы послал ему команду Click. Не уверен, что это стоит того делать; на данный момент щелчок отклоняет мой оверлей, поэтому пользователю просто нужно дважды щелкнуть.
Спасибо!