良い一日!
コードの簡単なエディターを作成しようとしているので、テキスト行を選択して色を赤に変更できるようにしたいICSharpCode.AvalonEdit.TextEditor
.
しかし、私はそれを使用する方法がわかりません。テキスト行の色を変更するのを手伝ってもらえますか?
ありがとうございました!
良い一日!
コードの簡単なエディターを作成しようとしているので、テキスト行を選択して色を赤に変更できるようにしたいICSharpCode.AvalonEdit.TextEditor
.
しかし、私はそれを使用する方法がわかりません。テキスト行の色を変更するのを手伝ってもらえますか?
ありがとうございました!
行を選択するには、Select() メソッドを使用します。
var line = editor.Document.GetLineByOffset(lineOffset);
editor.Select(line.Offset, line.Length);
AvalonEdit はコード エディターであり、リッチ テキスト エディターではないため、行の色をプログラムで変更するのは簡単ではありません。色付けは主に構文の強調表示に使用されます。SharpDevelop フォーラムのこの投稿によると、DocumentColorizingTransformer を作成する必要があります。それらの例はあなたのために働くはずです(読みやすくするためにすべてのエラーチェックコードを削除しました):
class LineColorizer : DocumentColorizingTransformer
{
int lineNumber;
public LineColorizer(int lineNumber)
{
this.lineNumber = lineNumber;
}
protected override void ColorizeLine(ICSharpCode.AvalonEdit.Document.DocumentLine line)
{
if (!line.IsDeleted && line.LineNumber == lineNumber) {
ChangeLinePart(line.Offset, line.EndOffset, ApplyChanges);
}
}
void ApplyChanges(VisualLineElement element)
{
// This is where you do anything with the line
element.TextRunProperties.SetForegroundBrush(Brushes.Red);
}
}
次に、ドキュメントに適用するには、次のように使用できます。
editor.TextArea.TextView.LineTransformers.Add(new LineColorizer(lineOffset));