उपयोग करने के लिए HighlightingRule
, आप (HighlightingColorizer
आदि) हाइलाइटिंग इंजन का एक और उदाहरण बनाना होगा कि
यह एक DocumentColorizingTransformer
कि अपने शब्द पर प्रकाश डाला गया लिखने के लिए आसान और अधिक प्रभावी है:
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
}
}
}
* बहुत बहुत धन्यवाद! * –
मुझे नहीं पता कि यह सवाल का जवाब कैसे देता है। उपयोगकर्ता एक ऐसा व्यवहार चाहता था जहां मेल खाने पर सभी शब्दों को टेक्स्ट में हाइलाइट किया जाए। दृश्य स्टूडियो की तरह कुछ ऐसा करता है। – Devid