Как сохранить вкладки в Silverlight RichTextBox? - PullRequest
0 голосов
/ 04 мая 2010

Я переопределил события обработки клавиш и вставляю вкладки, когда пользователь нажимает клавишу табуляции для RichTextBox.

Когда я сохраняю XAML из этого RichTextBox и перезагружаю его, все вкладки теперь являются пробелами.

Кто-нибудь знает, что я могу сделать, чтобы RichTextBox отображал вкладки?

1 Ответ

0 голосов
/ 06 мая 2010

Я решил эту проблему, временно вставив заполнитель.

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);
    }
}
...