Wpf 确定用户输入(鼠标或kb)是否已物理提交选择
如何确定选择是通过编程方式还是通过用户输入进行的 我开始写一些东西,但因为有更多的工作,我决定寻找一些开箱即用的程序或依靠社区经验 下面是我写的(注意,C#的答案也很受欢迎): 在文本框的OnSelectionChanged中调用,并确定选择是由用户还是虚拟用户进行的 但后来我意识到还有更多的选择:Shift+Home、Shift+PageDown等等。Wpf 确定用户输入(鼠标或kb)是否已物理提交选择,wpf,keyboard,mouse,selection,Wpf,Keyboard,Mouse,Selection,如何确定选择是通过编程方式还是通过用户输入进行的 我开始写一些东西,但因为有更多的工作,我决定寻找一些开箱即用的程序或依靠社区经验 下面是我写的(注意,C#的答案也很受欢迎): 在文本框的OnSelectionChanged中调用,并确定选择是由用户还是虚拟用户进行的 但后来我意识到还有更多的选择:Shift+Home、Shift+PageDown等等。 我宁愿相信一个经过测试的功能,也不愿重新发明穿刺轮。 感谢阅读。我改进了我的功能,但我仍然乐于接受以下想法: Private Shared R
我宁愿相信一个经过测试的功能,也不愿重新发明穿刺轮。
感谢阅读。我改进了我的功能,但我仍然乐于接受以下想法:
Private Shared ReadOnly SelectionModifiers() As Key =
New Key() {
Key.Left,
Key.Right,
Key.Up,
Key.Down,
Key.PageDown,
Key.PageUp,
Key.Home,
Key.End
}
Private Shared Function IsUserSelect() As Boolean
If Mouse.LeftButton = MouseButtonState.Pressed Then Return True
If ((Keyboard.Modifiers And ModifierKeys.Shift) = ModifierKeys.Shift) Then
Return SelectionModifiers.Any(Function(key) Keyboard.IsKeyDown(key))
End If
Return False
End Function
我真的不认为你能区分,除非你能直接访问物理硬件接口。我的问题是,如果有人已经进行了实验并进行了测试,我不想依靠我自己,如果有现成的功能。
Private Shared ReadOnly SelectionModifiers() As Key =
New Key() {
Key.Left,
Key.Right,
Key.Up,
Key.Down,
Key.PageDown,
Key.PageUp,
Key.Home,
Key.End
}
Private Shared Function IsUserSelect() As Boolean
If Mouse.LeftButton = MouseButtonState.Pressed Then Return True
If ((Keyboard.Modifiers And ModifierKeys.Shift) = ModifierKeys.Shift) Then
Return SelectionModifiers.Any(Function(key) Keyboard.IsKeyDown(key))
End If
Return False
End Function