using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Media;
namespace 智能仓储WCS管理系统
{
///
/// 富文本框扩展类
///
public static class RichTextBoxTool
{
///
/// 清空内容
///
public static void ClearText(this RichTextBox richTextBox)
{
try
{
richTextBox.Dispatcher.Invoke((Action)delegate
{
//清空文本
richTextBox.Document.Blocks.Clear();
//滚动到开头
richTextBox.ScrollToVerticalOffset(0);
});
}
catch (Exception ex)
{
throw ex;
}
}
///
/// 插入文本
///
///
/// 颜色
/// 内容
private static void AppendText(this RichTextBox richTextBox, Brush brush, string txt)
{
try
{
richTextBox.Dispatcher.Invoke((Action)delegate
{
var p = new Paragraph(); //Paragraph 类似于 html 的 P 标签
var r = new Run(txt); //Run 是一个 Inline 的标签
p.Inlines.Add(r);
p.LineHeight = 8;
p.Foreground = brush;//设置字体颜色
richTextBox.Document.Blocks.Add(p);
if (richTextBox.Document.Blocks.Count > 1000)
{
richTextBox.Document.Blocks.Remove(richTextBox.Document.Blocks.FirstBlock);
}
//滚动到末尾
richTextBox.ScrollToVerticalOffset(richTextBox.Document.Blocks.Count * 200);
});
}
catch (Exception ex)
{
throw ex;
}
}
///
/// 插入Title(棕色),为:######Title######
///
public static void AppendTile(this RichTextBox richTextBox, string txt)
{
AppendText(richTextBox, Brushes.Brown, "#####" + txt + "#####");
}
///
/// 插入信息(蓝色)
///
/// 是否在开头追加时间信息,如:HH:mm:ss.fff=>txt
public static void AppendInfo(this RichTextBox richTextBox, string txt, bool addTime = false)
{
if (string.IsNullOrEmpty(txt))
return;
if (addTime)
AppendText(richTextBox, Brushes.Blue, $"{DateTime.Now.ToString("HH:mm:ss.fff")}=>{txt.Replace("\r", "\\r").Replace("\n", "\\n")}");
else
AppendText(richTextBox, Brushes.Blue, txt.Replace("\r", "\\r").Replace("\n", "\\n"));
}
///
/// 插入信息(深绿色)
///
/// 是否在开头追加时间信息,如:HH:mm:ss.fff=>txt
public static void AppendResult(this RichTextBox richTextBox, string txt, bool addTime = false)
{
if (string.IsNullOrEmpty(txt))
return;
if (addTime)
AppendText(richTextBox, Brushes.Blue, $"{DateTime.Now.ToString("HH:mm:ss.fff")}=>{txt}");
else
AppendText(richTextBox, Brushes.ForestGreen, txt);
}
///
/// 插入错误(鲜红色)
///
/// 是否在开头追加时间信息,如:HH:mm:ss.fff=>txt
public static void AppendErr(this RichTextBox richTextBox, string txt, bool addTime = false)
{
if (string.IsNullOrEmpty(txt))
return;
if (addTime)
AppendText(richTextBox, Brushes.Blue, $"{DateTime.Now.ToString("HH:mm:ss.fff")}=>{txt}");
else
AppendText(richTextBox, Brushes.Tomato, txt);
}
}
}