3

我正在编写一个 Visual Studio 扩展,它悬停在文本编辑器内的所有内容之上(在选择、文本等之上)。

[Export(typeof(IWpfTextViewCreationListener))]
[ContentType("csharp")]
[TextViewRole(PredefinedTextViewRoles.Interactive)]
internal sealed class MyAdornmentFactory : MyAdornmentFactoryBase, IWpfTextViewCreationListener
{
    [Export(typeof(AdornmentLayerDefinition))]
    [Name("MyName")]
    [Order(After = PredefinedAdornmentLayers.Text, Before = PredefinedAdornmentLayers.Caret)]
    [TextViewRole(PredefinedTextViewRoles.Interactive)]
    public AdornmentLayerDefinition EditorAdornmentLayer;
    // ...
}

问题是,我的 WPF UserControl 总是“隐藏”在文本后面——无论我如何使用 OrderAttribute。

难道我做错了什么?还有其他可以影响这种行为的东西吗?

编辑:我现在可以确认它〜有时〜工作,可能连接到运行而无需调试......有人知道相关的视觉工作室错误吗?

4

1 回答 1

0

它应该有效,或者对我来说更好的是以您的确切方式设置顺序。例如,如果您从名为 TextAdornment 的每一行中突出显示“A”的模板开始(与 vs2010 SDK 一起提供)并将 zorder 从

[Order(After=PredefinedAdornmentLayers.Selection, Before=PredefinedAdornmentLayers.Text)]

[Order(After=PredefinedAdornmentLayers.Text, Before=PredefinedAdornmentLayers.Caret)]

装饰将放置在编辑器文本上。希望它有帮助。

于 2011-10-07T19:43:33.490 回答