В настоящее время я работаю над расширением Visual Studio с простым глифом (это изображение, которое фиксирует событие нажатия и показывает диалоговое окно), и мой поставщик глифов выглядит следующим образом:
[Export(typeof(IGlyphFactoryProvider))]
[Name("MutationCodeHighlightGlyph")]
[Order(After = "VsTextMarker")]
[ContentType("code")]
[TagType(typeof(MutationCodeHighlightTag))]
public class MutationCodeHighlightGlyphFactoryProvider : IGlyphFactoryProvider
{
public IGlyphFactory GetGlyphFactory(IWpfTextView view, IWpfTextViewMargin margin)
{
return new MutationCodeHighlightGlyphFactory();
}
}
Как Вы можете видеть, что у меня есть [Order(After = "VsTextMarker")]
, и я вижу глиф и нажимаю на него при отладке. Но позже, когда я устанавливаю его в свою обычную визуальную студию, я вижу только его, но не щелкаю Таким образом, мне кажется, что что-то ловит мое событие клика, и я думаю, что это стало более резким после прочтения этого:
https://social.msdn.microsoft.com/Forums/vstudio/en-US/a83a2e18-090f-49c7-98fb-33d687f936d0/how-to-set-iglyphfactoryprovider-order?forum=vsx
Он говорит о специальном холсте Resharper, который может захватывать события (но, к сожалению, не называет его название). Но должно быть решение этой проблемы? Немного странно, что расширение может создавать свой собственный холст и захватывать все события, поэтому все остальные сторонние расширения терпят неудачу.
Редактировать: Только что попробовал и отключил resharper, и теперь он работает нормально .. так что каким-то образом reharper украл все события клика.