Я играл вокруг со Всплывающим Управлением WPF и насколько я вижу, свойство Visibility является лишним.
Если у Вас будет Всплывающее окно с IsOpen = то Правда, это будет видимо даже если его Видимость = Свернутый.
Если у Вас будет Всплывающее окно с IsOpen = Ложь, то ее Видимость будет Свернута и останется "Свернутой", когда IsOpen изменится на истинный, и это появится. (т.е. у Вас будет что-то, что появляется на Вашем экране, даже при том, что Ищейка говорит, что он Сворачивается.)
Почему делает Раскрывающееся управление, имеют оба этих свойства? Я пропускаю что-то здесь?
Я считаю, что вы правы ... это в значительной степени излишнее. Я думаю, проблема в том, что свойство Visibility
унаследовано от UIElement
и может быть интерпретировано как «Если это имеет нормальное визуальное представление».
Так как Popup
не имеет визуального представления в его «состоянии по умолчанию ... то есть: когда оно закрыто, свойство не имеет большого значения. IsOpen
, однако , это скорее свойство, основанное на поведении ... то есть: «Следует ли пользователю разрешить взаимодействовать с моим обычно скрытым содержимым?» Или, возможно, я просто оправдываю работу Microsoft здесь.
В конце день, все, что имеет представление пользовательского интерфейса, наследуется от UIElement
и, следовательно, получает свойство Visibility
... даже в тех случаях, когда это ничего не означает.
MSDN дает полное значение и цель для обоих.
Popup.IsOpen - получает или задает значение, указывающее, является ли всплывающее окно видимым.
Popup.Visibility - Получает или задает видимость пользовательского интерфейса (UI) для этого элемента. Он унаследован от UIElement.