Sdílet prostřednictvím


Návod: Přizpůsobení textového zobrazení

Textové zobrazení můžete přizpůsobit úpravou některé z následujících vlastností v mapě formátu editoru:

  • Okraj ukazatele

  • Kurzor kurzoru kurzoru

  • Přepsání stříšky

  • Vybraný text

  • Neaktivní vybraný text (to znamená vybraný text, který ztratil fokus)

  • Viditelné prázdné znaky

Vytvoření projektu MEF

  1. Vytvořte projekt VSIX jazyka C#. (V Dialogové okno Nový projekt , vyberte Visual C# / Rozšiřitelnost a pak projekt VSIX.) Pojmenujte řešení ViewPropertyTest.

  2. Přidejte do projektu šablonu položky klasifikátoru editoru. Další informace najdete v tématu Vytvoření rozšíření pomocí šablony položky editoru.

  3. Odstraňte existující soubory třídy.

Definování typu obsahu

  1. Přidejte soubor třídy a pojmenujte ho ViewPropertyModifier.

  2. Přidejte následující using direktivy:

    using System;
    using System.Collections;
    using System.Windows;
    using System.Windows.Media;
    using System.ComponentModel.Composition;
    using Microsoft.VisualStudio.Text.Classification;
    using Microsoft.VisualStudio.Text.Editor;
    using Microsoft.VisualStudio.Utilities;
    
  3. Deklarujte třídu, TestViewCreationListener která dědí z IWpfTextViewCreationListener. Exportujte tuto třídu s následujícími atributy:

    • ContentTypeAttribute určit typ obsahu, na který se tento naslouchací proces vztahuje.

    • TextViewRoleAttribute určit roli tohoto naslouchacího procesu.

      [Export(typeof(IWpfTextViewCreationListener))]
      [ContentType("text")]
      [TextViewRole(PredefinedTextViewRoles.Document)]
      internal class TestViewCreationListener : IWpfTextViewCreationListener
      

  4. V této třídě importujte .IEditorFormatMapService

    [Import]
    internal IEditorFormatMapService FormatMapService = null;
    

Změna vlastností zobrazení

  1. Nastavte metodu TextViewCreated tak, aby se při otevření zobrazení změnily vlastnosti zobrazení. Pokud chcete provést změnu, nejprve vyhledejte ResourceDictionary , která odpovídá aspektu zobrazení, které chcete najít. Potom změňte odpovídající vlastnost ve slovníku prostředků a nastavte vlastnosti. Dávkujte volání SetProperties metody voláním BeginBatchUpdate metody před nastavením vlastností a potom EndBatchUpdate po nastavení vlastností.

    public void TextViewCreated(IWpfTextView textView)
    {
        IEditorFormatMap formatMap = FormatMapService.GetEditorFormatMap(textView);
    
        ResourceDictionary regularCaretProperties = formatMap.GetProperties("Caret");
        ResourceDictionary overwriteCaretProperties = formatMap.GetProperties("Overwrite Caret");
        ResourceDictionary indicatorMargin = formatMap.GetProperties("Indicator Margin");
        ResourceDictionary visibleWhitespace = formatMap.GetProperties("Visible Whitespace");
        ResourceDictionary selectedText = formatMap.GetProperties("Selected Text");
        ResourceDictionary inactiveSelectedText = formatMap.GetProperties("Inactive Selected Text");
    
        formatMap.BeginBatchUpdate();
    
        regularCaretProperties[EditorFormatDefinition.ForegroundBrushId] = Brushes.Magenta;
        formatMap.SetProperties("Caret", regularCaretProperties);
    
        overwriteCaretProperties[EditorFormatDefinition.ForegroundBrushId] = Brushes.Turquoise;
        formatMap.SetProperties("Overwrite Caret", overwriteCaretProperties);
    
        indicatorMargin[EditorFormatDefinition.BackgroundColorId] = Colors.LightGreen;
        formatMap.SetProperties("Indicator Margin", indicatorMargin);
    
        visibleWhitespace[EditorFormatDefinition.ForegroundColorId] = Colors.Red;
        formatMap.SetProperties("Visible Whitespace", visibleWhitespace);
    
        selectedText[EditorFormatDefinition.BackgroundBrushId] = Brushes.LightPink;
        formatMap.SetProperties("Selected Text", selectedText);
    
        inactiveSelectedText[EditorFormatDefinition.BackgroundBrushId] = Brushes.DeepPink;
        formatMap.SetProperties("Inactive Selected Text", inactiveSelectedText);
    
        formatMap.EndBatchUpdate();
    }
    

Sestavení a otestování kódu

  1. Sestavte řešení.

    Když tento projekt spustíte v ladicím programu, spustí se druhá instance sady Visual Studio.

  2. Vytvořte textový soubor a zadejte nějaký text.

    • Kurzor kurzoru by měl být purpurový a přepsaný stříšku by měl být tyrkysový.

    • Okraj ukazatele (vlevo od textového zobrazení) by měl být světle zelený.

  3. Vyberte text, který jste zadali. Barva vybraného textu by měla být světle růžová.

  4. Když je text vybraný, klikněte kamkoli mimo textové okno. Barva vybraného textu by měla být tmavě růžová.

  5. Zapněte viditelné prázdné znaky. (Na kartě Upravte nabídku, přejděte na položku Upřesnit a klepněte na příkaz Zobrazit prázdné znaky). Zadejte do textu několik karet. Měly by se zobrazit červené šipky, které představují karty.