Мне нужно написать алгоритм, который заменяет первый символ одним и тем же символом, но в верхнем регистре. Итак, я написал этот код:
private void RegionFilter_TextChanged(object sender, TextChangedEventArgs e)
{
TextBox tb = (sender as TextBox);
var initialText = tb.Text;
if (initialText != "")
{
var firstChar = initialText.Substring(0, 1).ToUpper();
var restOfString = initialText.Substring(1, initialText.Length - 1);
tb.Text = firstChar + restOfString;
}
}
Но есть проблема: каретка не подходит к концу после замены текста, она все еще остается в начале.
Важно сказать, что в TextBox в Windows Phone 8 нет свойства CaretIndex. Как я могу это решить?
Тем не менее, вы можете использовать методы выделения текстового поля, как показано здесь:
myTextBox.Select(tbPositionCursor.Text.Length, 0);
Вы можете найти дополнительную информацию об этом здесь: http://msdn.microsoft.com/en-us/library/ms752349(v=vs.110).aspx
Вы также можете изменить положение каретки, установив TextBox.SelectionStart вашего TextBox
. Добавьте в конце вашего алгоритма:
yourTextBox.SelectionStart = yourTextBox.Text.Length;