Как определить, сделан ли выбор программным путем или с помощью пользовательского ввода.
Я начал что-то писать, но так как есть больше работы, я решил искать какую-то готовую процедуру или полагаться на сообществоопыт.
Итак, вот что я написал ( Примечание , что ответы в C # также приветствуются):
Private Shared Function IsUserSelect() As Boolean
If Mouse.LeftButton = MouseButtonState.Pressed Then Return True
Dim shift As Boolean
shift = Keyboard.IsKeyDown(Key.LeftShift)
If Not shift Then shift = Keyboard.IsKeyDown(Key.RightShift)
If shift Then
Dim arrow As Boolean
arrow = Keyboard.IsKeyDown(Key.Right)
If Not arrow Then arrow = Keyboard.IsKeyDown(Key.Left)
If arrow Then Return True
End If
Return False
End Function
Для вызова в OnSelectionChanged TextBox иопределить, сделан ли выбор пользователем или виртуально.
Но тогда я понимаю, что есть гораздо больше вариантов: Shift + Home, Shift + PageDown и т. д.
Я бы предпочел доверять проверенной функции, а затем заново изобретатьпрокол колеса.
Спасибо за чтение.