WPF C#的XML语法突出显示

时间:2014-04-15 12:51:50

标签: c# xml wpf syntax formatting

我的应用程序中有一个RichTextBox,我想在其中显示来自externhal .xml文件的XML。但我需要以xml格式颜色显示节点/属性/值/注释。我也经历了XML Highlight in RichTextBox链接。但它对我没有帮助。因为我没有多少时间完成这项任务。那么我可以获得任何API或一些已经构建的代码吗?

我按以下方式加载XML

XmlDocument doc = new XmlDocument();
doc.Load("filepath.xml");
gameListXMLRichText.Document.Blocks.Clear();
gameListXMLRichText.AppendText(doc.InnerXml.ToString());

从上面的link格式化有很多问题。但由于时间关系,我现在无法通过。所以请帮助我。在此先感谢。

修改 因为我从link获取代码并将代码应用于简单的xml。结果如下所示

XML Structure

但它应该看起来像

enter image description here

对我来说,只需要适当的颜色。不需要正确的格式化。

代码链接为:http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-10-12-22-80/highlightRTF.txt

2 个答案:

答案 0 :(得分:11)

您可以使用AvalonEdit控件

你可以从nuGet获得它:http://www.nuget.org/packages/AvalonEdit

请参阅:http://www.codeproject.com/Articles/42490/Using-AvalonEdit-WPF-Text-Editor以获取有关如何使用它的指南。

这将为您提供XML语法突出显示并将作为编辑器运行 - 设置有点古怪,但在我的经验中确实很有效。只需在XAML中使用SyntaxHighlighting="XML"

答案 1 :(得分:3)

它真的很简单。

  1. 首先,您需要从Manage NuGet Packages安装AvalonEdit。 使用以下链接安装说明http://www.nuget.org/packages/AvalonEdit
  2. 或  右键单击Solution Explorer中的Project并单击Manage NuGet Packages,现在单击Online和Search Avalon Editor。然后安装AvalonEditor

    1. 只需在xaml文件中添加以下代码即可。

      的xmlns:avalonedit = “http://icsharpcode.net/sharpdevelop/avalonedit”

    2. 现在添加您的TextEditor如下

      < avalonedit:TextEditor SyntaxHighlighting =“XML”x:Name =“gameListXMLText”Height =“200”>

    3. 现在只需加载xml文件,如下所示

      gameListXMLText.Text =  File.ReadAllText("sample.xml");
      
    4. 多数民众赞成:)嘻哈哈里:)谢谢阿瓦隆