using System.Text;
using System.Windows;
using System.Windows.Forms;
using System.Collections.Generic;
using Quicker.Public;
using System.IO;
using System.Xml;
using System.Windows.Input;
using ICSharpCode.AvalonEdit.Highlighting;
using ICSharpCode.AvalonEdit.Highlighting.Xshd;
using ICSharpCode.AvalonEdit;
public static void OnWindowCreated(Window win, IDictionary<string, object> dataContext, ICustomWindowContext winContext)
{
var textEditor = (TextEditor)win.FindName("textEditor");
textEditor.Text = "A·Z\n" +
"Hello, AvalonEdit!\n" +
"if else.\n";
// 加载高亮规则
string xshdContent = dataContext["HLxshd"].ToString(); // 从动作变量中读取xshd
IHighlightingDefinition iHL = LoadCustomHighlightingFromString(xshdContent);
textEditor.SyntaxHighlighting = iHL;
}
// 加载规则的函数
public static IHighlightingDefinition LoadCustomHighlightingFromString(string xshd)
{
using (var stringReader = new StringReader(xshd))
{
using (var xmlReader = new XmlTextReader(stringReader))
{
return HighlightingLoader.Load(xmlReader, HighlightingManager.Instance);
}
}
}