我正在编写一个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?
答案 0 :(得分:0)
它应该工作,或者对我来说更好的是以你的方式设定秩序。 例如,如果您从名为TextAdornment的每一行中突出显示'A'的模板开始(随vs2010 SDK一起提供)并从
更改zorder[Order(After=PredefinedAdornmentLayers.Selection, Before=PredefinedAdornmentLayers.Text)]
到
[Order(After=PredefinedAdornmentLayers.Text, Before=PredefinedAdornmentLayers.Caret)]
将装饰品放在编辑器文本上。 希望它能解决。