WPF: проблема с вкладкой richtextbox - PullRequest
3 голосов
/ 05 августа 2011

Я действительно смущен тем, что здесь происходит. У меня есть rtb, и для allowTab задано значение true, поэтому пользователь может сделать отступ.

Проблема в том, что внутри текста нет символа табуляции. Например, если у меня есть текст, который выглядит следующим образом:

this is some text
    and some more text
    and one more line

Я бы подумал, если бы я посмотрел на текст в коде, он бы выглядел так:

this is some text \r\n\tand some more text\r\n\tand one more line

но вместо этого это выглядит так:

this is some text \r\nand some more text\r\nand one more line (notice there are 
no tabs)

Вкладки очень важны для меня, так как мне нужно отслеживать «иерархию» строк, мне нужно знать, сколько места осталось перед строками. (либо пробелы, либо символы табуляции (\ t)). Есть ли способ увидеть пространство табуляции как \ t, когда я смотрю на строку в коде?

Должен ли я просто перехватить событие нажатия клавиши и заменить событие нажатия клавиши табуляции пробелами? Вот как я это сделал в проекте winforms, но я думаю, что у WPF будет отличный способ справиться с этим:)

Спасибо!

Редактировать Когда я нажимаю кнопку вкладки, это меняет текст абзаца? ака, нет заметной разницы в самом тексте?

1 Ответ

0 голосов
/ 05 августа 2011

Я не уверен, как вы получаете текст обратно, но он должен работать, тест:

string text = "this is some text \r\n\tand some more text\r\n\tand one more line";

richTextBox1.AppendText(text);

text = new TextRange(richTextBox1.Document.ContentStart, richTextBox1.Document.ContentEnd).Text;
//text will be the same: "this is some text \r\n\tand some more text\r\n\tand one more line\r\n"
...