В WPF TextBox
, если I:
- , установите
IsInactiveSelectionHighlightEnabled
на True
- , разрешите горизонтальную прокрутку
- введите достаточное количество символов, чтобыМне нужно прокрутить текстовое поле, чтобы увидеть их все
Подсветка выделения работает нормально, пока текстовое поле имеет фокус / активно.Однако, как только он теряет фокус (но выделение выделения остается из-за того, что для IsInactiveSelectionHighlightEnabled
установлено значение true), и если я прокручиваю текстовое поле с помощью полосы прокрутки, выделение не прокручивается вместе с текстом.По сути, это означает, что подсветка теперь выделяет разные символы.Если я нажимаю клавишу Tab, чтобы восстановить фокус, выделение корректно корректируется, чтобы снова выделить правильные символы.
Я могу воспроизвести это очень просто, создав приложение для рабочего стола WPF (любая платформа .Net должна подойти) и используяэтот XAML внутри тега Window:
<Grid>
<StackPanel>
<TextBox Height="50" Width="100" TextWrapping="NoWrap" IsInactiveSelectionHighlightEnabled="True" HorizontalScrollBarVisibility="Auto" Text="Hello" />
<TextBox Height="50" Width="100" TextWrapping="NoWrap" IsInactiveSelectionHighlightEnabled="True" HorizontalScrollBarVisibility="Auto" Text="World" />
</StackPanel>
</Grid>
С указанным выше макетом просто введите достаточно символов, чтобы одно из текстовых полей отображало полосу прокрутки.Затем выделите некоторые символы в начале этого текстового поля.Затем измените фокус на другое текстовое поле.Затем прокрутите исходное текстовое поле, и вы увидите выделение выделения разных / неправильных символов.(Вы должны присмотреться, так как неактивное выделение - очень тонкий эффект с определением по умолчанию.)
Другими словами, выделение выделения не учитывает положение прокрутки, когда текстовое поле неактивно.
Я не могу себе представить, что это предполагаемое поведение.Куда я здесь не так?