在Silverlight中使用<p> </p>

时间:2011-01-29 16:24:41

标签: silverlight

如何显示我的文字,意味着它是否有段落,它应该只以这种方式显示?我正在使用<TextBlock>

例如。

hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh。

kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk。

lllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll。

感谢名单

2 个答案:

答案 0 :(得分:3)

Silverlight中的TextBlock仅支持非常简单的格式化。在某些情况下,RichTextBox(设置IsReadOnly,带有一些其他格式设置)可能是更好的选择。

使用TextBlock时可能会尝试这样的事情:

<TextBlock>
    <Run Text="Paragraph 1"/><LineBreak/><Run/>
    <LineBreak/>
    <Run Text="Paragraph 2"/><LineBreak/>
    <Run Text="No visible break."/>
    <LineBreak/>
    <Run Text="Paragraph 3"/><LineBreak/><Run/>
    <LineBreak/>
    <Run Text="End"/>
</TextBlock>

这会产生一个像这样的文本块:

Paragraph 1

Paragraph 2
No visible break.
Paragraph 3

End

如果您有现有标记,则可以使用字符串替换或正则表达式为您进行一些调整。例如,这可能有效:

<p>可以是<Run>

</p>可以是</Run><LineBreak/><LineBreak/>

答案 1 :(得分:0)

执行此操作的最佳方法是自行添加换行符或使用循环遍历所有文本数组的代码将其划分为多个元素,这些文本在有换行符的任何位置拆分。

这是我修复的方法:

public String Body { get; set; }

// Assign a string to Body

Body = Body.Replace("\n", "\n\n");
Body = Body.Replace("\r", "\r\r");

然后我将Body分配给TextBlock:

txt_article.Text = Body;

希望有所帮助:)