Почему в текстовом поле WPF неактивный выбор отображается неправильно при прокрутке? - PullRequest
0 голосов
/ 03 марта 2019

В 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>

С указанным выше макетом просто введите достаточно символов, чтобы одно из текстовых полей отображало полосу прокрутки.Затем выделите некоторые символы в начале этого текстового поля.Затем измените фокус на другое текстовое поле.Затем прокрутите исходное текстовое поле, и вы увидите выделение выделения разных / неправильных символов.(Вы должны присмотреться, так как неактивное выделение - очень тонкий эффект с определением по умолчанию.)

Другими словами, выделение выделения не учитывает положение прокрутки, когда текстовое поле неактивно.

Я не могу себе представить, что это предполагаемое поведение.Куда я здесь не так?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...