2013-08-15 3 views
3

Я в настоящее время TextBox в моем WPF приложение, которое только для чтения:Перемещение к концу текста в только для чтения TextBox

<TextBox x:Name="TextBox_CurrentDirectory" IsReadOnly="True"></TextBox> 

и текст, обновляется в код:

private void Window_Loaded(object sender, RoutedEventArgs e) 
{ 
    var app = Application.Current as App; 
    TextBox_CurrentDirectory.Text = app.ActiveDirectory; 
    //Show the end of the text here 
} 

Есть ли способ показать конец текста программно? Если текст в TextBox длиннее TextBox, он показывает только начало и отключается. Я хотел бы показать конец текста.

Я попытался с помощью

TextBox_CurrentDirectory.CaretIndex = TextBox_CurrentDirectory.Text.Length; 

, но ничего не происходит.

ответ

4

Перед настройкой CaretIndex вам необходимо указать фокус TextBox.

TextBox_CurrentDirectory.Text = app.ActiveDirectory; 
TextBox_CurrentDirectory.Focus(); 
TextBox_CurrentDirectory.CaretIndex = TextBox_CurrentDirectory.Text.Length; 
+0

Спасибо, что указали это! Исправлена ​​ошибка копирования/вставки. Он отлично работал, большое спасибо :) – miguelarcilla

+0

Я думаю, что OP просто хочет показать конец текста, не заботясь о позиции каретки. Так что просто вызов 'ScrollToEnd()' в порядке, не так ли? –

+1

@KingKing - Я тоже так думал, но в моем тесте не работал. Я думаю, что вызов 'ScrollToEnd', как это может быть для многострочных текстовых полей. – keyboardP

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