Вы можете обработать событие LostFocus и установить для аргумента события значение e.Handled = true
. Таким образом, TextBox не будет знать, что он потерял фокус, и сохранит ваш выбор.
private void myTextCtrl_LostFocus(object sender, RoutedEventArgs e)
{
e.Handled = true;
}
Это даст вам нечто похожее на то, что вы ищете, но в отличие от способа Win32, оно все равно будет отображать ваш выбор выделенным цветом, а не темно-серым.
Если вы действительно хотите приложить усилия, вы можете написать XAML для <TextBox.SelectionBrush>
.
Другой способ - использовать FocusManager , о этом методе можно прочитать здесь .