【问题标题】:AvalonEdit : How to modify the xshd file to change elements atrributeAvalonEdit:如何修改 xshd 文件以更改元素属性
【发布时间】:2015-07-22 11:24:25
【问题描述】:

我尝试修改 xshd 文件以在 c# 中以编程方式更改元素颜色的属性前景。我尝试使用 XmlAtrribute 访问并更改它,但它没有用。我怎样才能改变它?下面是我的 xshd 文件

 <?xml version="1.0"?>
<SyntaxDefinition name="Boo" extensions=".boo" xmlns="http://icsharpcode.net/sharpdevelop/syntaxdefinition/2008">
<Color name="String" foreground="Red" />
<Color name="Comment" foreground="Green" />

<!-- This is the main ruleset. -->
<RuleSet>
<Span color="Comment" begin="//" />
<Span color="Comment" multiline="true" begin="/\*" end="\*/" />
<Span color="String">
  <Begin>'</Begin>
  <End>'</End>
  <RuleSet>
    <!-- nested span for escape sequences -->
    <Span begin="\\" end="." />
  </RuleSet>
</Span>
<Keywords fontWeight="bold" foreground="Green">
  <Word>IF</Word>
  <Word>IFEND</Word>
  <Word>DECLARED</Word>
</Keywords>
<!-- Digits -->
<Rule foreground="Gray">
    \b0[xX][0-9a-fA-F]+  # hex number
    |    \b
    (    \d+(\.[0-9]+)?   #number with optional floating point
    |    \.[0-9]+         #or just starting with floating point
    )
    ([eE][+-]?[0-9]+)? # optional exponent
  </Rule>
<Rule  foreground="Blue">
    \w*-\w*-*\w*
  </Rule>
<Rule foreground="Pink">
    (\w*=\w*)
  </Rule>
 </RuleSet>
</SyntaxDefinition>

【问题讨论】:

  • 改变两个元素的Foreground属性颜色?
  • 我只想通过名称“String”更改一个元素的前景

标签: c# xml text-formatting avalonedit


【解决方案1】:

使用 LINQ 试试这个:

XDocument doc = XDocument.Load("file.xml");
XNamespace ns = "http://icsharpcode.net/sharpdevelop/syntaxdefinition/2008";
var element = doc.Descendants(ns + "Color").First(x => x.Attribute("name").Value == "String");
element.SetAttributeValue("foreground", "VALUECOLOR");
doc.Save("file.xml");

【讨论】:

  • 非常感谢,帮了大忙
猜你喜欢
  • 2012-06-30
  • 1970-01-01
  • 2011-05-07
  • 1970-01-01
  • 2012-07-20
  • 1970-01-01
  • 2011-05-03
  • 2015-04-25
  • 1970-01-01
相关资源
最近更新 更多