내 WPF 응용 프로그램에 바로 가기를 보내려면 사용자 입력을 받아야합니다. 키를 누를 때
캐치 :
나는 이런 식으로 뭔가를해야 할이 인터넷에서 찾을
Catch Alt + 기타 단축키
void keyDown(object sender, KeyEventArgs e) {
if ((Keyboard.Modifiers & Modifiers.Shift) == Modifiers.Shift)
{
KeyPressed.SetShift(true);
}
if (Key.Shift != e.Key && Key.LeftAlt != e.Key && ....)
{
KeyPressed.SetKey(e.Key);
}
⇧Shift, 경우 Alt 키 또는 Ctrl 키 다른 키는 012에 Alt 키 대신 의 Ctrl 키와 (⇧Shift을 누르면절). 두 번째 if
은 Alt, , ⇧Shift, 단축키 제어와 다른 키를 잡는 것입니다. 예를 들어, C + 바로 가기 Alt 키 위해 우리는이 :
- KeyPressed.Shift = 거짓;
- KeyPressed.Alt = true;
- KeyPressed.Ctrl = false;
- KeyPressed.key = Key; 마지막 요소 유형
System.Window.Input.Key
이다
. 키가 해제
캐치 : 내가 제대로 다음 바로 가기를 잡기 위해 false로 모든 키를 설정 그 후
void keyUp(object sender, KeyEventArgs e) {
if(KeyPressed.getShift())
this.textField.Text += "+Shift";
if(KeyPressed.getKeyCode())
this.textField.Text += "+" + KeyPressed.k.toString();
KeyPressed.SetShift(false);
}
여기에 단순히 I는 입력받은 텍스트 입력란에 추가합니다.
이 코드는 같은 모든 바로 가기를 위해 잘 작동 Ctrl 키 + , Ctrl 키 + Alt 키 + C, ⇧Shift + L, Alt 키, 그러나 나는 바로 가기를 누를 때 likealt + v,alt, 다른 키가 아닙니다.
어떻게 관리 할 수 있습니까?
더 좋은 방법으로 바로 가기를 처리 할 수있는 방법이 있습니까? 고맙습니다.
더 나은 방법 : [InputBindings] (https://msdn.microsoft.com/en-us/library/system.windows.input.inputbinding (v = vs.110) .aspx), [이 기사 참조] 자세한 내용은 https://wpf.2000things.com/tag/inputbindings/)을 참조하십시오. –