Как добавить блок в richtextbox - PullRequest
1 голос
/ 14 января 2012

Как добавить новый блок в коллекцию richtextbox.document.blocks?В другом потоке проверяется, сколько символов содержится в richtextbox.

Если сумма превышает 25000 символов, я очищаю richtextbox, используя richtextbox.document.blocks.clear()

Но это удаляетмои начальные блоки, которые я создал в UI-потоке:

Paragraph p = this.richtextbox.Document.Blocks.FirstBlock as Paragraph;
p.Margin = new Thickness(0);

Попытка этого кода в другом потоке, отличном от UI-Thread, дает мне исключение при вызове во время выполнения.Потому что 'p' равно нулю.

Что я скучаю по парням?

1 Ответ

1 голос
/ 14 января 2012

Код, который вы показали, не создает никаких блоков, он просто получает первый, который обычно будет там по умолчанию, поэтому, если вы очистите все блоки, вам сначала нужно будет добавить новый, используя что-то вроде:

var p = new Paragraph();
richtextbox.Document.Blocks.Add(p);
p.Margin = ...;

Вы можете просто иметь if, который проверяет количество блоков, если их более одного, получите первый с вашим исходным кодом, если не создадите, и добавьте его.

...