无法更改Visual Studio adorner z命令

时间:2011-08-31 11:37:04

标签: wpf visual-studio-2010 adornment

我正在编写一个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。

我做错了吗?是否有其他可以影响这种行为的东西?

编辑:我现在可以确认它〜有时〜工作,可能连接到没有调试的运行...有没有人知道相关的Visual studio bug?

1 个答案:

答案 0 :(得分:0)

它应该工作,或者对我来说更好的是以你的方式设定秩序。 例如,如果您从名为TextAdornment的每一行中突出显示'A'的模板开始(随vs2010 SDK一起提供)并从

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

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

将装饰品放在编辑器文本上。 希望它能解决。