Я пытаюсь найти, какой бит мне нужно настроить, чтобы ContextMenus в WPF прекратил анимацию, когда они появляются / исчезают.
Из того, что я могу сказать, WPF создает Popup для размещения ContextMenu. Popup смотрит на свое свойство PopupAnimation и решает, как анимировать. То, что я хочу сделать, это всегда иметь значение «Нет».
Я пытался установить глобальный безымянный стиль с помощью TargetType of Popup, который устанавливает для PopupAnimation значение None, но это не работает. Если я нарушу System.Windows.Controls.Primitives.Popup.SetupAnimations, я вижу, что тип анимации по-прежнему установлен на Fade. Я предполагаю, что у него еще не было возможности применять стили ..
Я пытался перехватить ContextMenuOpening, но там нет доступа к всплывающему окну, которое я мог бы найти.
Что еще я мог попробовать?
Обратите внимание, что это как бы вторая часть другого вопроса, который я задал здесь . Эти советы отлично сработали для меню и всего остального, что у нас было, что оживляло, но единственным исключением был ContextMenus. Они анимируются на основе свойств кода, а не шаблона. Я подтвердил это, вытянув шаблон ContextMenu, используя совет, данный здесь .