2011-03-27 7 views
0

I WPF 키를 누른 상태에서 부울 변수를 설정하고 추가로 다른 작업을 수행해야합니다. 나는. 키를 설정하고 키를 재설정하면 해제됩니다. 그냥 이벤트 처리기로 할 수있는 것 :WPF 키를 누르는 동안 bool을 올바르게 설정하는 방법

this.KeyDown += new KeyEventHandler(MyModuleView_KeyDown); 
this.KeyUp += new KeyEventHandler(MyModuleView_KeyUp); 

bool MyFlag = false; 

void MyModuleView_KeyUp(object sender, KeyEventArgs e) 
    { 
     if (e.Key == System.Windows.Input.Key.Space) 
     { 
      MyFlag = false; 
      ... 
     } 

    } 

    void MyModuleView_KeyDown(object sender, KeyEventArgs e) 
    { 
     if (e.Key == System.Windows.Input.Key.Space) 
     { 
      MyFlag = true; 
      ... 
     } 
    } 

그러나 나는 WPF에서보다 정확한 방법으로 수행 할 수 있다고 생각합니다.
나는 명령 방법을 사용하려고 해요,하지만 난 그것을 할 방법에 난 단지 키를 누르는 사실에 변수 를 설정할 수 있지만 동안 키를 누를 때 :

private static RoutedUICommand mymode; 

InputGestureCollection inputs = new InputGestureCollection(); 
     inputs.Add(new KeyGesture(Key.Space, "Space")); 
     mymode = new RoutedUICommand("MyMode", "MyMode", typeof(InterfaceCommands), inputs); 
public static RoutedUICommand MyMode 
{ 
    get { return mymode; } 
} 
... 
private void MyModeCommand_Executed(object sender, ExecutedRoutedEventArgs e) 
{ 
    MyFlag = true; 
    ... 
} 

키를 눌렀을 때을 누르는 동안 (예 : 커서 선택 모드) 을 켜기 위해 WPF에서 키의 상태를 올바르게 추적하는 방법은 무엇입니까?

답변

2

명령이 여기에 도움이되지 않습니다. 이벤트에 대한 접근 방식은 올바른 방법입니다. 코드 숨김을 원하지 않으면 이벤트 연결을 담당하는 사용자 정의 연결된 속성을 만들 수 있습니다.

관련 문제