Разница между всплывающими свойствами IsOpen и Visibility? - PullRequest
6 голосов
/ 17 марта 2010

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

Если у вас есть всплывающее окно с IsOpen = True, оно будет видно, даже если его Visibility = Collapsed.

Если у вас есть всплывающее окно с IsOpen = False, то его видимость будет свернута и останется «свернутой», когда IsOpen изменится на true, и он появится. (т.е. у вас будет что-то, что появляется на вашем экране, даже если Snoop говорит, что оно свернуто).

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

Ответы [ 2 ]

1 голос
/ 18 марта 2010

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

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

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

0 голосов
/ 19 марта 2010

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...