- .Net4.5
通常ログ(Log)はそのまま、エラーログ(LogError)は赤く表示します。
/// <summary> /// RichTextBoxを色付きログ出力用に拡張 /// </summary> public class LogTextBox { public RichTextBox RichTextBox { set; get; } // コンストラクタ public LogTextBox(RichTextBox richTextBox) { RichTextBox = richTextBox; } // クリア public void Clear() { var paragraph = RichTextBox.Document.Blocks.LastBlock as Paragraph; paragraph.Inlines.Clear(); } // テキスト追加 public virtual void WriteLine(string text, Brush brush = null) { var paragraph = RichTextBox.Document.Blocks.LastBlock as Paragraph; // 書き込み if (brush != null) { // 色付きでテキスト追加 var span = new Span { Foreground = brush }; span.Inlines.Add(text + "\n"); paragraph.Inlines.Add(span); } else { // そのままテキスト追加 paragraph.Inlines.Add(text + "\n"); } // 最終行にスクロール RichTextBox.ScrollToEnd(); } // 通常ログ public void Log(object message) { WriteLine(message.ToString()); } // 警告ログ public void LogWarning(object message) { WriteLine(message.ToString(), Brushes.Orange); } // エラーログ public void LogError(object message) { WriteLine(message.ToString(), Brushes.Red); } }
RichTextBoxではFlowDocumetで内容が構成されており、その構成は複雑で、ちょっと色を付けるだけでも手間がかかります。
参考URL
http://msdn.microsoft.com/ja-jp/library/aa970779%28v=vs.110%29.aspx
http://noizy-radio.blogspot.jp/2013/02/wpfrichtextbox_22.html
http://blogs.wankuma.com/naka/archive/2008/07/13/148706.aspx
0 件のコメント:
コメントを投稿