Как я могу проверить, перекрывают ли 2 средств управления друг друга на холсте в WPF?

Используйте внедрение зависимости для введения единственного объекта конфигурации в любые классы, которым нужен он. Таким образом, можно использовать ложную конфигурацию для тестирования или независимо от того, что Вы хотите..., Вы явно не выходите и получаете что-то, что должно быть инициализировано с конфигурационными файлами. С внедрением зависимости Вы не передаете объект вокруг также.

11
задан Dave Clemmer 18 August 2011 в 21:59
поделиться

2 ответа

Размер (FrameworkElement.ActualWidth FrameworkElement.ActualHeight) и позиция (Canvas.Top, Canvas.Bottom, Canvas.Left, Canvas.Right) будут достаточными, если они всегда прямоугольные. В этом случае вы можете легко вычислить, перекрываются ли два прямоугольника. Если элементы могут быть более сложной формы, они становятся волосатыми. Понятия не имею, могу ли я проверить пересечение двух экземпляров Visual в WPF.

Может быть, мы можем использовать хит-тест ? При таком подходе вы можете по крайней мере проверить, пересекается ли определенная точка или геометрия с определенным визуалом. Таким образом, вам нужно будет определить геометрию или список точек, которые более или менее точно соответствуют границам вашего второго визуала.

4
ответ дан 3 December 2019 в 05:34
поделиться

Вы можете использовать метод Rect.IntersectsWith

17
ответ дан 3 December 2019 в 05:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: