Я ищу способы эффективно определить, является ли элемент управления видимым и активным. Я имею в виду не только проверку свойства видимости объекта.
Я могу проверить RenderSize, и это будет [0,0], если какой-либо из родительских элементов будет свернут. Так что это тоже просто. Я также могу пройти по визуальному дереву и посмотреть, установлено ли значение Непрозрачность всех элементов на 1.
То, что я не знаю, как хорошо проверить, это следующие сценарии:
- Объект заблокирован каким-либо другим объектом . Очевидно, что можно использовать FindElementsInHostCoordinates () и выполнять вычисления, чтобы выяснить, насколько сильно эти объекты мешают, но это может быть излишним. Я также могу сделать «снимок экрана» рассматриваемого объекта и «снимок экрана» всей страницы и проверить, соответствуют ли пиксели, в которых должен находиться мой объект, фактическим пикселям объекта. Это звучит как излишнее убийство.
- Объект закрыт прозрачным объектом, который все еще «глотает» щелчки (удары) . Обходные пути для первой проблемы все еще могут потерпеть неудачу в этом сценарии.
Обновление (еще один сценарий)
- Объект находится за пределами родительского объекта / экрана . Есть ли другой способ выяснить это, кроме множества расчетов?
Есть идеи получше? Я что-то пропустил?
Спасибо!