2011-03-02 2 views
5

RoutedUICommandInputGesture을 설정하려고합니다. 사용자가 Ctrl + =을 누를 때 잡으려고합니다. KeyGesture 개체를 사용하고 있지만, 같음 ('=') 키에 대해 System.Windows.Input.Key 열거 형의 항목을 볼 수 없습니다. , System.Windows.Input.Key 열거 형에서 Equals 키에 대한 항목이 없습니까?

ZoomIn = new RoutedUICommand("Zoom In", "ZoomIn", typeof(Window), 
    new InputGestureCollection { 
     new KeyGesture(Key.Equals, ModifierKeys.Control) 
    }); 

사람이 올바른 방향으로 날 지점 수

하십시오 : 나는 기다리고 있었다 무엇

는 다음을 수행 할 수 있도록했다?

+5

'='를 누르면 반환되는 값을 확인 했습니까? – ChrisF

+0

아주 좋은 지적입니다. * 부끄러움에 머리를 달다 * –

+0

올바른 답변을 받아들이는 것을 잊지 마세요 :) –

답변

2

ChrisF가 지적한 것처럼 나는 두뇌를 조금 기울일 필요가있었습니다. 가치가있는 경우 KeyDown 이벤트를 처리 할 때 생성되는 값은 Key.OemPlus입니다.

업데이트 :이의
한 결과 당신이 나와 같은 같은 일을하고 그리고 당신은 메뉴의 명령을 사용하려고하는 경우, 당신은 아마 오버로드 된 생성자를 사용할 것,이다
두 번째 매개 변수가 displayStringKeyGesture의 경우 예를 들어 :

new KeyGesture(Key.Equals, ModifierKeys.Control, "Ctrl+=") 

그렇지 않으면, 당신은 키보드 단축키 정확히 바람직하지 않다 "Ctrl 키 + OemPlus"(내 경우) 표시가 나타납니다. 틀림없이, 위는 여전히 크지 않지만 "OemPlus"보다 낫습니다. 내가 그것을 테스트하는 경우

+0

그래서 equals 키는 원래 장비 제조업체가 제공 한 플러스 키입니까? 흠. –

0

, 난 키 코드로 Key.Unknown 얻고, PlatformKeyCode= = 0x000000bb (187)

+1

흥미 롭습니다. Silverlight로 테스트하고 있습니다. –

+0

"No"라고 말하려고했는데, 그 프로젝트가 내가 시도한 프로젝트가 * silverlight ... 였어. 그게 wpf와 silverlight에서 다른 낯선 사람이야. –

2

한 해킹 시프트를 keyDown을 잡으려고, 그리고 OemPlus의를 keyDown는 시프트의 keyup 앞에 오는 경우, 당신은 "OemEqual". 코드는 다음과 같이 보일 수 있습니다 :

관련 문제