В обработчике правой кнопки вверх вы отмечаете событие как обработанное?Если нет, редактор увидит событие после завершения работы вашего обработчика.Если вы помечаете его как обработанный, но он все еще не работает, есть еще один вариант.
Более "официальный" способ сделать это - реализовать IMouseProcessorProvider + MouseProcessorBase.Вам нужно будет переопределить PreprocessMouseRightButtonUp
, но только тогда, когда ваше украшение - это элемент, по которому щелкнули.Вот как работает нормальный код контекстного меню редактора;он реализует один из этих процессоров мыши, обрабатывает щелчки правой кнопкой мыши и просит оболочку Visual Studio показать контекстное меню в месте щелчка (отправив команду SHOWCONTEXTMENU).
Если вы идете по этому пути, процессор мышиу провайдера должны быть метаданные (набранные вручную, извините за опечатки):
[Export(typeof(IMouseProcessorProvider))]
[Name("WhateverYouWantToCallIt")]
[Order(Before = "VisualStudioMouseProcessor")]
[ContentType("text")] // or whatever your adornment is specific to
[TextViewRole(PredefinedTextViewRoles.Interactive)]
internal sealed class MouseProcProvider : IMouseProcessorProvider