我正在尝试在我使用AvalonEdit制作的程序中设置语法高亮显示
这是我正在使用的代码:
StreamResourceInfo sri = Application.GetResourceStream(new Uri("lua.xshd"));
using (Stream s = sri.Stream)
{
using (XmlTextReader reader = new XmlTextReader(s))
{
var gLua = HighlightingLoader.LoadXshd(reader);
editor.SyntaxHighlighting = HighlightingLoader.Load(gLua, HighlightingManager.Instance);
editor.Text = reader.ToString();
}
}
我也来了
System.dll
中出现'System.UriFormatException'类型的第一次机会异常
我应该如何更改它才能使其正常工作?
答案 0 :(得分:0)
我用
using (Stream s = File.OpenRead(@"C:\Users\JFM\Documents\latex3.xshd"))
{
using (XmlTextReader reader = new XmlTextReader(s))
{
editor.SyntaxHighlighting = ICSharpCode.AvalonEdit.Highlighting.Xshd.HighlightingLoader.Load
(reader, ICSharpCode.AvalonEdit.Highlighting.HighlightingManager.Instance);
}
}
答案 1 :(得分:0)
这是因为您没有包含您的程序集名称。因此,如果您将xshd构建为嵌入式资源,它应该是这样的。
private void LoadHightLightRule()
{
using (Stream s = myAssembly.GetManifestResourceStream("Your_Assembly_Name.lua.xshd"))
{
using (XmlTextReader reader = new XmlTextReader(s))
{
Editor.SyntaxHighlighting = HighlightingLoader.Load(reader, HighlightingManager.Instance);
}
}
}