Per utilizzare che HighlightingRule
, si dovrà creare un'altra istanza del motore di evidenziazione (HighlightingColorizer
etc.)
E 'più facile e più efficiente per scrivere un DocumentColorizingTransformer
che mette in evidenza la tua parola:
public class ColorizeAvalonEdit : DocumentColorizingTransformer
{
protected override void ColorizeLine(DocumentLine line)
{
int lineStartOffset = line.Offset;
string text = CurrentContext.Document.GetText(line);
int start = 0;
int index;
while ((index = text.IndexOf("AvalonEdit", start)) >= 0) {
base.ChangeLinePart(
lineStartOffset + index, // startOffset
lineStartOffset + index + 10, // endOffset
(VisualLineElement element) => {
// This lambda gets called once for every VisualLineElement
// between the specified offsets.
Typeface tf = element.TextRunProperties.Typeface;
// Replace the typeface with a modified version of
// the same typeface
element.TextRunProperties.SetTypeface(new Typeface(
tf.FontFamily,
FontStyles.Italic,
FontWeights.Bold,
tf.Stretch
));
});
start = index + 1; // search for next occurrence
}
}
}
* Grazie mille! * –
Non vedo come questo risponda alla domanda. L'utente voleva un comportamento in cui tutte le parole vengono evidenziate in un testo se corrispondono. Lo fa qualcosa di simile allo studio visivo. – Devid