Различие между свойствами IsOpen и Visibility Всплывающего окна?

Я играл вокруг со Всплывающим Управлением WPF и насколько я вижу, свойство Visibility является лишним.

Если у Вас будет Всплывающее окно с IsOpen = то Правда, это будет видимо даже если его Видимость = Свернутый.

Если у Вас будет Всплывающее окно с IsOpen = Ложь, то ее Видимость будет Свернута и останется "Свернутой", когда IsOpen изменится на истинный, и это появится. (т.е. у Вас будет что-то, что появляется на Вашем экране, даже при том, что Ищейка говорит, что он Сворачивается.)

Почему делает Раскрывающееся управление, имеют оба этих свойства? Я пропускаю что-то здесь?

7
задан 17 March 2010 в 13:23
поделиться

2 ответа

Я считаю, что вы правы ... это в значительной степени излишнее. Я думаю, проблема в том, что свойство Visibility унаследовано от UIElement и может быть интерпретировано как «Если это имеет нормальное визуальное представление».

Так как Popup не имеет визуального представления в его «состоянии по умолчанию ... то есть: когда оно закрыто, свойство не имеет большого значения. IsOpen , однако , это скорее свойство, основанное на поведении ... то есть: «Следует ли пользователю разрешить взаимодействовать с моим обычно скрытым содержимым?» Или, возможно, я просто оправдываю работу Microsoft здесь.

В конце день, все, что имеет представление пользовательского интерфейса, наследуется от UIElement и, следовательно, получает свойство Visibility ... даже в тех случаях, когда это ничего не означает.

{{1} }
2
ответ дан 7 December 2019 в 18:42
поделиться

MSDN дает полное значение и цель для обоих.

Popup.IsOpen - получает или задает значение, указывающее, является ли всплывающее окно видимым.

Popup.Visibility - Получает или задает видимость пользовательского интерфейса (UI) для этого элемента. Он унаследован от UIElement.

0
ответ дан 7 December 2019 в 18:42
поделиться
Другие вопросы по тегам:

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