Procedura dettagliata: Personalizzare la visualizzazione testo
È possibile personalizzare una visualizzazione testo modificando una delle proprietà seguenti nella mappa in formato editor:
Margine indicatore
Cursore di inserimento
Sovrascrivere il cursore
Testo selezionato
Testo selezionato inattivo(ovvero testo selezionato che perde lo stato attivo)
Spazi vuoti visibili
Creare un progetto MEF
Creare un progetto VSIX C#. (In Finestra di dialogo Nuovo progetto , selezionare Visual C# / Estendibilità e quindi progetto VSIX. Assegnare alla soluzione
ViewPropertyTest
il nome .Aggiungere un modello di elemento classificatore dell'editor al progetto. Per altre informazioni, vedere Creare un'estensione con un modello di elemento dell'editor.
Eliminare i file di classe esistenti.
Definire il tipo di contenuto
Aggiungere un file di classe e assegnargli il nome
ViewPropertyModifier
.Aggiungere le direttive
using
seguenti:Dichiarare una classe denominata
TestViewCreationListener
che eredita da IWpfTextViewCreationListener. Esportare questa classe con gli attributi seguenti:ContentTypeAttribute per specificare il tipo di contenuto a cui si applica questo listener.
TextViewRoleAttribute per specificare il ruolo di questo listener.
In questa classe importare .IEditorFormatMapService
Modificare le proprietà della visualizzazione
Configurare il TextViewCreated metodo in modo che le proprietà di visualizzazione vengano modificate all'apertura della visualizzazione. Per apportare la modifica, trovare prima di tutto che ResourceDictionary corrisponde all'aspetto della visualizzazione che si desidera trovare. Modificare quindi la proprietà appropriata nel dizionario risorse e impostare le proprietà. Eseguire il batch delle chiamate al SetProperties metodo chiamando il BeginBatchUpdate metodo prima di impostare le proprietà e quindi EndBatchUpdate dopo aver impostato le proprietà.
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(); }
Compilare e testare il codice
Compilare la soluzione.
Quando si esegue questo progetto nel debugger, viene avviata una seconda istanza di Visual Studio.
Creare un file di testo e digitare alcune parole.
Il cursore di inserimento deve essere magenta e la caret di sovrascrittura deve essere turchese.
Il margine dell'indicatore (a sinistra della visualizzazione testo) deve essere verde chiaro.
Selezionare il testo digitato. Il colore del testo selezionato deve essere rosa chiaro.
Mentre il testo è selezionato, fare clic in un punto qualsiasi all'esterno della finestra di testo. Il colore del testo selezionato deve essere rosa scuro.
Attivare gli spazi vuoti visibili. (In Scegliere Avanzate dal menu Modifica e quindi fare clic su Visualizza spazi vuoti. Digitare alcune schede nel testo. Verranno visualizzate le frecce rosse che rappresentano le schede.