首页 > 解决方案 > 如何确保我的字形位于顶部(Visual Studio 扩展)?

问题描述

我目前正在开发一个带有简单字形的 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,现在它工作正常.. 所以 resharper 以某种方式窃取了所有点击事件。

标签: c#visual-studio-extensionsglyph

解决方案


推荐阅读