3

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.UriFormatException' の初回例外が System.dll で発生しました

これを機能させるには、これをどのように変更すればよいですか?

4

2 に答える 2

1

私が使う

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);    
 }
}
于 2012-11-18T15:21:28.457 に答える
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);
            }
        }
    }
于 2014-03-06T05:05:49.860 に答える