如何以编程方式从richtexteditor中读取段落值?

时间:2011-06-05 19:40:56

标签: silverlight silverlight-4.0

 <RichTextBox HorizontalAlignment="Left" Margin="21,92,0,0" Name="richTextBox1" VerticalAlignment="Top" Height="259" Width="357" >
            <Paragraph>hello kitty!</Paragraph>
            <Paragraph>hello world!</Paragraph>
            <Paragraph>hello fb!</Paragraph>
        </RichTextBox>


   BlockCollection bc = richTextBox1.Blocks;
            foreach (var b in bc)
            {

            }

段落在集合中,b是段落类型,但我不知道如何从它们中读取值。没有任何text属性或innerHTML属性。

2 个答案:

答案 0 :(得分:1)

您可以使用这样的代码从段落中获取值。

foreach (var paragraph in richTextBox1.Blocks.OfType<Paragraph>())
{
    foreach (var run in paragraph.Inlines.OfType<Run>())
    {
        var text = run.Text;
    }
}

答案 1 :(得分:1)

段落不直接包含文本,而是包含内联集合:运行,跨度,超链接等。示例中的段落包含单个运行。要从段落中获取文本,您需要先将其“展平”。有两种方法可以做到这一点:亚历克斯消化或使用选择时自己动手。设置从段落开头到结尾的选择,并使用选择的文本属性,它将为你做平展。