Наиболее распространенный способ скрытия элемента управления WPF - установить для атрибута Visibility
значение Hidden
или Collapsed
.Когда я сделал это для примера приложения и попытался найти эти элементы с помощью инфраструктуры автоматизации, я получил элементы с флагом IsOffscreen
, установленным на true
.
Например:
<Label Content="Hidden label" Visibility="Hidden"/>
![Visibility: Hidden](https://i.stack.imgur.com/wOkHU.jpg)
<Label Content="Collapsed label" Visibility="Collapsed"/>
![Visibility: Collapsed](https://i.stack.imgur.com/BTNMr.jpg)
С моей точки зрения это выглядит разумно, но документация по инфраструктуре автоматизации: https://docs.microsoft.com/en-us/windows/desktop/winauto/uiauto-automation-element-propids говорит:
Объекты, которые конечный пользователь вообще не воспринимает или которые «программно скрыты» (например, диалоговое окно, которое было закрыто, но лежащий в основеобъект по-прежнему кэшируется приложением) не должен находиться в дереве элементов автоматизации на первом месте (вместо установки состояния IsOffscreen в значение ИСТИНА).
Как можно добиться результата, на который указываетв документации?