如何保留Silverlight RichTextBox中的选项卡?

时间:2010-05-04 19:09:15

标签: silverlight richtextbox tabs

我已经覆盖了键处理事件,并在用户按下RichTextBox的Tab键时插入制表符。

当我从RichTextBox保存XAML并重新加载它时,所有选项卡现在都是空格。

有谁知道我可以做些什么来让RichTextBox显示标签?

1 个答案:

答案 0 :(得分:0)

我通过临时放置占位符解决了这个问题。

private const string TAB = "    ";
private const string TAB_PLACEHOLDER = "===TAB===";

我使用占位符暂时替换所有制表符,然后在RichTextBox中我将所有占位符替换为制表符。

textBox1.Text = richTextBox1.Xaml;
string xaml = richTextBox1.Xaml;

xaml = xaml.Replace(TAB, TAB_PLACEHOLDER);

richTextBox2.Xaml = xaml;

foreach (Block block in richTextBox2.Blocks)
{
    foreach (Inline inline in ((Paragraph)block).Inlines)
    {
        ((Run) inline).Text = ((Run) inline).Text.Replace(TAB_PLACEHOLDER, TAB);
    }
}