Để sử dụng mà HighlightingRule
, bạn sẽ phải tạo một thể hiện của các động cơ nổi bật (HighlightingColorizer
vv)
Nó dễ dàng hơn và hiệu quả hơn để viết một DocumentColorizingTransformer
làm nổi bật văn bản của bạn:
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
}
}
}
* Cảm ơn rất nhiều! * –
Tôi không thấy cách này trả lời câu hỏi. Người dùng muốn có hành vi trong đó tất cả các từ được đánh dấu trong văn bản nếu chúng khớp nhau. Một cái gì đó tương tự như studio trực quan không. – Devid