Проверка попадания в WPF

У меня Ellipse на Canvas, и я провожу на нем Hit Testing. Каждый раз, когда я щелкаю по Ellipse, тест проходит. Если я щелкну в середине Ellipse, тест не пройдёт. Это хорошо!

После того, как я закрашу эллипс следующим образом: myEllipse.Fill = new SolidColorBrush(Colors.Blue);, тестовый код также появится, когда я щелкну в середине Ellipse.

Как я могу это отключить? (даже если Ellipse заполнен, тест завершится неудачно, если я щелкну по середине) Спасибо!


person Community    schedule 04.01.2010    source источник


Ответы (2)


Если вы проводите собственное тестирование попаданий (см. Проверка попаданий на визуальном уровне для получения подробной информации о том, как это сделать), вы должны иметь возможность проверить IntersectionDetail GeometryHitTestResult - это IntersectionDetail.Intersects, а не IntersectionDetail.FullyContains.

person Reed Copsey    schedule 04.01.2010
comment
Ссылка на 4.5 не показывает (?) ... а вот 4.0 работает. Проверка попаданий в визуальном слое - person ΩmegaMan; 30.06.2015

Не можете ли вы поместить в середину эллипс меньшего размера и установить IsHitTestVisible = "false"?

person Magnus Ahlin    schedule 20.08.2014
comment
Это не предотвратит попадание нижнего эллипса, IsHitTestVisible = false делает этот элемент невидимым для проверки попадания, но не влияет на элементы ниже затронутого элемента. - person John Melville; 27.12.2014