2016-01-08 2 views
0

Я уже использовал приведенный ниже код. Он перемещает текущую позицию каретки в верхнюю часть видового экрана.Установить текущую позицию caretPosition в конце видового экрана RichTextBox?

FrameworkContentElement fce = (tpNextLine2.Parent as FrameworkContentElement); 
if (fce != null) 
{ 
    fce.BringIntoView(); 
} 

Я хочу перенести текущий текст текстового указателя в конец видового экрана richtextbox с использованием WPF.

Как я могу это достичь?

ответ

1

Если вы не хотите, чтобы изменить текущую позицию курсора, но прокручивать WPF RichTextBox переместить эту позицию в нижней части видимой области, вы можете использовать этот код:

Rect rc = rtb.CaretPosition.GetCharacterRect(LogicalDirection.Forward); 
rtb.ScrollToVerticalOffset(rc.Bottom + rtb.VerticalOffset - rtb.ViewportHeight); 
+0

@ Fratyx: Thank u. его, как то, что я хочу. Но как проверить текущую позицию в окне просмотра или нет? Потому что после одной страницы каждая строка прокручивается. Я думаю, как только я вызову свои коды после проверки, нет ли текущей позиции каретки в окне просмотра. –

+1

@arjun sanju: Вы можете проверить, видима ли позиция или нет, [этот код] (http://stackoverflow.com/a/34691469/3135228). – Pollitzer

+0

@ Crawumbo: Вышеупомянутая логика, как получить rc.Top в поле зрения? –

0

Попробуйте этот код:

RichTextBox1.Select(RichTextBox1.Text.Length - 1, 0); 

RichTextBox1.ScrollToCaret(); 
+0

К сожалению, это просто работает в Windows.Forms, а не в WPF – Fratyx

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