1

我有一个文本文件中的 xml 是

<text font='Bamini' color='#ffff80ff' font-size='8'>the </text>
<text font='Microsoft Sans Serif' color='#ff804000' font-size='8'>test </text>
<text font='Microsoft Sans Serif' color='#ff8000ff' font-size='8'>text </text>
<text font='Kal-72' color='#ff0080c0' font-size='8'>sample</text>

我想将文本标签的内容附加到RichTextBox. 即,第一个文本标签(the)的内容将设置字体类型“Bamini”,颜色为“#ffff80ff”,大小为“8”,其他标签也一样

4

3 回答 3

1

您可以使用RichTextBox.RtfRTF格式化的文本放置到控件中以进行显示,或者使用控件文本中RTF定义的指定格式提取控件的文本。

RTF编码不同于HTML. 你不能马上这样做。我建议WebBrowser控制。

或从codeproject尝试这种方式:

于 2012-07-30T11:30:11.567 回答
0

请尝试以下代码:

private void button1_Click(object sender, EventArgs e)
    {
        var textConfiguration = XDocument.Load(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Config.xml"));
        if (textConfiguration != null)
        {
            textConfiguration.Descendants("Configuration").Descendants("text").ToList().ForEach(text =>
            {
                font = text.Attribute("font").Value;
                color = text.Attribute("color").Value;
                fontsize = text.Attribute("font-size").Value;
                textToAppend = text.Value;

            });
        }
        richTextBox1.SelectionColor = Color.FromName(color);   
        richTextBox1.SelectionFont = new Font(font, int.Parse(fontsize), FontStyle.Regular);
        richTextBox1.AppendText(textToAppend);
    }

XML 文件是这样的:

<?xml version="1.0" encoding="utf-8" ?>
<Configuration>
  <text font='Verdana' color='Green' font-size='8'>The Formatted Text</text>
</Configuration>    

我希望这会给你一个想法。

如果你有多个文本块,你可以修改代码如下:

private void button1_Click(object sender, EventArgs e)
    {
        var textConfiguration = XDocument.Load(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Config.xml"));
        if (textConfiguration != null)
        {
            textConfiguration.Descendants("Configuration").Descendants("text").ToList().ForEach(text =>
            {
                font = text.Attribute("font").Value;
                color = text.Attribute("color").Value;
                fontsize = text.Attribute("font-size").Value;
                textToAppend = text.Value;
                richTextBox1.SelectionColor = Color.FromName(color);
                richTextBox1.SelectionFont = new Font(font, int.Parse(fontsize), FontStyle.Regular);
                richTextBox1.AppendText(textToAppend);
            });
        }

    }  

XML将是这样的

<?xml version="1.0" encoding="utf-8" ?>
<Configuration>
  <text font='Verdana' color='Green' font-size='8'>The </text>
  <text font='Verdana' color='Red' font-size='8'>Formatted </text>
  <text font='Verdana' color='Blue' font-size='8'>Text</text>
</Configuration>  

我再次修改了代码,现在您可以在 XML 文件中包含 Hex coloe 代码。
代替

richTextBox1.SelectionColor = Color.FromName(color);  

经过

System.Drawing.Color col = System.Drawing.ColorTranslator.FromHtml(color); 
richTextBox1.SelectionColor = col;  

并更换

color='Green'  

经过

color='#ffff80ff'  
于 2012-07-30T13:01:12.913 回答
0

您应该使用两者之一

  1. 创建一个有效的 xml 文档文件,您可以在其中存储您的text元素(您当前的格式不是有效的 xml)。有关 C# 中 xml 操作的更多信息,请转到此处
  2. 创建一个app.config文件并从该文件中保存/选择值。有关此的更多信息,请点击此处
于 2012-07-30T11:34:22.893 回答