- .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 件のコメント:
コメントを投稿