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;
    // ...
}

問題は、OrderAttribute をどのように操作しても、WPF UserControl が常にテキストの背後に「隠れる」ことです。

私は何か間違ったことをしていますか?この動作に影響を与える可能性のあるものは他にありますか?

編集:おそらくデバッグなしで実行することに関連して、〜時々〜動作することを確認できます...関連するビジュアルスタジオのバグを知っている人はいますか?

4

1 に答える 1

0

それはうまくいくはずです。または、私にとっては、あなたの正確な方法で順序を設定する方が良いでしょう。たとえば、TextAdornment (vs2010 SDK に付属) と呼ばれるすべての行でハイライト 'A' のテンプレートから開始し、zorder を

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

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

装飾はエディターのテキストの上に配置されます。それが役立つことを願っています。

于 2011-10-07T19:43:33.490 に答える