Большая проблема с производительностью при использовании TextWrapping и ScrollViewer

У меня есть следующий фрагмент XAML:

<ScrollViewer VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Disabled">
    <TextBlock HorizontalAlignment="Stretch" Margin="10" 
               VerticalAlignment="Stretch" TextWrapping="Wrap"/>
</ScrollViewer>

Когда я изменяю размер окна, в котором находится ScrollViewer, у меня возникает очень большая проблема с производительностью: окно зависает на несколько секунд!

Как я могу решить эту проблему?


person Nick    schedule 30.12.2012    source источник
comment
Вы пробовали профайлер? В качестве альтернативы вы можете взломать отладчик, когда произойдет зависание, и опубликовать здесь стек вызовов.   -  person Alois Kraus    schedule 31.12.2012
comment
Сколько текста в TextBlock?   -  person spender    schedule 31.12.2012
comment
@spender Около 6000 символов.   -  person Nick    schedule 31.12.2012
comment
@AloisKraus Стек вызовов не дает вам никакой информации [Внешний код].   -  person Nick    schedule 31.12.2012
comment
Проверьте вкладку «Отладка» в настройках вашего проекта. Включите отладку неуправляемого кода и загрузите символы с серверов символов, чтобы увидеть, что происходит.   -  person Alois Kraus    schedule 31.12.2012
comment
Я полагаю, что у вас нет этой проблемы, текстовый блок не выполняет перенос... пробовали ли вы другой элемент управления, предназначенный для хранения большого количества символов, например RichTextBox (вы можете отключить редактирование, чтобы он вел себя как текстовый блок.   -  person Hannish    schedule 31.12.2012
comment
Используйте RichTextBox и пропустите внешний ScrollViewer. Я считаю, что ScrollViewer предоставит бесконечное пространство для TextBlock и поместит полосы прокрутки в том направлении, где TextBlock переполняется.   -  person Sten Petrov    schedule 09.01.2013


Ответы (1)


если это возможно и имеет смысл, попробуйте изменить целевую структуру на 4 или выше (на странице свойств проекта). это помогает когда-то. CLR 4 намного быстрее.

person Viktar    schedule 09.01.2013