2016-11-21 2 views
0

Я работаю над WPF-приложением. Вот мой интерфейс:WPF: общая высота содержимого ScrollViewer

<ScrollViewer x:Name="ScrollView" CanContentScroll="True"> 
     <RichTextBox Padding="10" x:Name="TextArea" Background="Transparent" Opacity="0.95" />  
</ScrollViewer> 

Я хочу, чтобы загрузить текстовый файл, чтобы в RichTextBox, который больше, то размер экрана, а затем выяснить, общий размер содержимого просмотра прокрутки (т.е. насколько могу я действительно прокрутить). В документации говорится:

ScrollViewer.ExtentHeight недвижимости

A Double, который представляет вертикальный размер степени. Значение по умолчанию равно 0.0.

Если CanContentScroll верно, то значения ExtentHeight, ScrollableHeight, ViewportHeight и VerticalOffset свойства количество элементов. Если CanContentScroll имеет значение false, значения этих свойств являются независимыми от устройства пикселями.

Если правильно понимаю, документация говорит, что ExtentHeight должен дать мне высоту моего содержания в единицах размеров содержимого, если CanContentScroll является true. Мой RichTextBox - это содержимое прокрутки. Поэтому, если мой RichTextBox имеет длину 1000 пикселей, например, и 500 пикселей видны на экране, то ExtentHeight должно быть 2. Однако при загрузке пустого RichEditBox, который полностью вписывается в ScrollViewer без прокрутки и имеет ActualHeight, равный 567, ExtentHeight равен 37,96, что для меня не имеет смысла. Я ожидаю, если будет равно 1 или меньше, чем 1. Итак, как мне найти общий размер содержимого TextBox внутри ScrollViewer.

ответ

0

Я думаю, что причиной моей проблемы было то, что у меня был RichTextBox в ScrollViewer. RichTextBox имеет свои собственные возможности прокрутки, и, вставив его в ScrollViwer, он все запутался. Поэтому я избавился от ScrollViewver и использовал RichTextBox только с его свойством HeightExtent.

Смежные вопросы