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