2010-07-28 1 views
3

단축키가있는 프리즘 명령을 트리거 할 수 있는지 여부를 아는 사람이 있습니까? Silverlight 트리거링 키보드 단축키가있는 프리즘 명령

ClientUI key bindings

그 목적에 대한 오픈 소스 라이브러리가 있습니다 ClientUI이하는 것처럼 내 말은, 내가 선언적 방식으로 키보드 바로 가기 명령의 바인딩을 정의 할 수 있도록하려면 무엇입니까? 아니면 샘플을 코드화할까요?

나는 this question을 찾았지만 내 대답은 아닌 것 같습니다.

답변

3

나는 그러한 제스쳐 트리거를 만들었습니다. 그리고 나는 그것들을 여러분과 나누고 싶습니다. 기본적으로 문자열로 표시된 제스처를 구문 분석 할 수있는 것은 System.Windows.Interactivity 트리거입니다. 사용법은 ClientUI 에서처럼 간단합니다.

<UserControl> 
    <i:Interaction.Triggers> 
     <behaviors:KeystrokeCommandTrigger Command="{Binding SaveChangesCommand}" Gesture="Ctrl+Shift+S" /> 
     <behaviors:KeystrokeCommandTrigger Command="{Binding RejectChangesCommand}" Gesture="Ctrl+Shift+R" /> 
     <behaviors:KeystrokeCommandTrigger Command="{Binding NewItemCommand}" Gesture="Ins" /> 
     <behaviors:KeystrokeCommandTrigger Command="{Binding DeleteSelectedItemCommand}" Gesture="Del" /> 
     <behaviors:KeystrokeCommandTrigger Command="{Binding UploadSomethingCommand}" Gesture="Ctrl+Shift+U" /> 
    </i:Interaction.Triggers> 
</UserControl> 

코드는 pastie입니다.

+0

고맙습니다. 훌륭한 작품입니다! – Jalal

1

KeyUp 이벤트를 수신 한 다음 명령을 호출하면 연결된 동작을 작성할 수 있습니다. 합병증은 제스처 = "Ctrl + Shift + A"와 같은 것으로 번역됩니다. string이 나타내는 키 조합을 정확하게 파싱하려면 파서를 작성해야합니다.

+0

따라서 기존의 오픈 소스 솔루션은 없습니까? –

+0

내가 찾을 수 없었습니다. 간단한 동작을 작성하는 것은 제스처 매개 변수를 처리하는 방법에 따라 너무 복잡하지 않아야합니다. – Stephan