Контекстное меню и всплывающее окно - PullRequest
7 голосов
/ 10 декабря 2010

В чем разница между классом ContextMenu и классом Popup?

1 Ответ

15 голосов
/ 10 декабря 2010

Документы MSDN отлично отображают различия:

Всплывающее окно Класс:

Представляет всплывающее окно с содержимым.

ContextMenu Класс:

Представляет всплывающее меню, которое позволяет элементу управления отображать функциональность, специфичную для контекста элемента управления..

Таким образом, ContextMenu - это более конкретная версия Popup - она ​​предназначена для привязки к конкретному элементу управления, предоставляя способы взаимодействия с этим элементом управления.Читайте дальше на странице MSDN: ContextMenu имеет встроенные средства для отображения себя, когда вы щелкаете правой кнопкой мыши по связанному элементу управления, и он автоматически отображается в a Popup.

Класс Popup является гораздо более общим: он просто определяет скелетное окно (без границ или декораций по умолчанию), которое может отображать любой произвольный UIElement поверх других элементов управления (обратите внимание, что класс Popup является частью Примитивы Пространство имен, означающее, что оно должно входить в состав других элементов управления, таких как ContextMenu).

...