Прокрутка текста в текстовом блоке из кода позади

мне нужно прокрутить текст текстового блока. Например, текстовый блок содержит 700 слов. Эти слова добавляются в текстовый блок из кода позади, поскольку это могут быть разные 700 слов в зависимости от некоторых «вещей». В этой форме также есть текстовое поле. Пользователь вводит слова из текстового блока в текстовое поле. По мере того, как они набирают текст, я отслеживаю, на каком слове они находятся. Однако не все слова в текстовом блоке поместятся в области просмотра текстового блока, поэтому мне нужно прокрутить текстовый блок из кода позади. Как мне это сделать?

Я использую silverlight 3.

Спасибо шеннон

извините .. я не понял, что не задавал вопрос в его собственной ветке .. Я опубликую еще раз ..


person jvcoach23    schedule 25.02.2010    source источник


Ответы (1)


Сначала вы захотите заключить свой TextBlock в элемент управления ScrollViewer. На этом этапе вы можете установить вертикальное и горизонтальное смещения ScrollViewer в коде, расположенном за этим. Обратите внимание, это предполагает элемент управления ScrollViewer с именем ScrollViewer1.

    Private Sub ScrollViewer1_MouseWheel(ByVal sender As Object, By Val e as System.Windows.Input.MouseWheelEventArgs)
        Me.ScrollViewer1.VerticalOffset = Me.ScrollViewer1.VerticalOffset + e.Delta
    End Sub
person Steve Danner    schedule 25.02.2010
comment
спасибо за ответ ... я использую vb.net для бэкэнда ... и я пытался преобразовать то, что вы дали ... но получаю ошибку. Затемнить сфокусированный элемент как FrameworkElement focusElement = TryCast (FocusManager.GetFocusedElement (), FrameworkElement) Dim focusVisualTransform As GeneralTransform focusVisualTransform = focusElement.TransformToVisual (Me.ScrollViewer1) ошибка в этой последней строке. Ссылка на объект не установлена ​​для экземпляра. Я попытался создать новый моментальный снимок ... не повезло ... надеюсь, вы можете продолжать оказывать помощь - person jvcoach23; 25.02.2010
comment
Я назвал средство просмотра прокрутки ScrollViewer1 - person jvcoach23; 25.02.2010
comment
Мой код на самом деле направлен на перемещение полосы прокрутки при переходе по элементам внутри нее. Вы получаете сообщение об ошибке, потому что у вас нет целевого элемента. См. Мое изменение для обработки события MouseWheel ScrollViewer1, которое должно делать то, что вы хотите. Я также преобразовал его в VB. - person Steve Danner; 25.02.2010
comment
просто понял, что вы предлагали focusElement .. scrollviewer и textblock .. были бы они сфокусированным элементом ... если текстовый блок заполняется и обрабатывается полностью в коде позади ... пользователь никогда ничего не касается в этом текстовом блоке. - person jvcoach23; 25.02.2010
comment
Да, смотрите мои комментарии выше. Кроме того, код, который я дал в редактировании, может потребоваться изменить, чтобы проверить отрицательное смещение или смещение больше разрешенного ... - person Steve Danner; 25.02.2010
comment
отлично .. спасибо за код ... я думаю, что теперь он работает .. ваше руководство указывало мне в правильном направлении .. еще раз большое спасибо - person jvcoach23; 25.02.2010