none
RibbonWindow 사용시 경우에 따라 alt 단축키를 비활성화 시킬수 있나요? RRS feed

  • 질문

  • 만약 Alt+I 단축키를 이용하고 싶을때 , 해당 단축키를 richtextbox에 binding 하면 잘 동작합니다.

    하지만, 동작후 alt 때문에 ribbon메뉴가 focus를 가지고, KeyTip이 보여지면서 richtextbox가 다시 focus를 가지기 전까지는 타이핑을 할수가 없게됩니다.

    제가 정의한 단축키가 있을때 리본메뉴가 활성화 되지 않도록 하는 방법이 있나요?

    2012년 6월 14일 목요일 오전 1:41

모든 응답

  • 안녕하십니까? always newbie 님,
    Microsoft MSDN 의Forum 사이트를 방문해 주셔서 감사합니다.

    현재 문의 하신 ”RibbonWindow 사용시 경우에 따라 alt 단축키를 비활성화 시킬수 있나요?" 대해 답변을 드리겠습니다.

    Alt + F4경우 아래와같이 비활성화합니다. 아래 부분을 응용하셔서 시도 부탁드립니다.

    protected override void OnPreviewKeyDown(System.Windows.Input.KeyEventArgs e)
    {
            if ((Keyboard.IsKeyDown(Key.LeftAlt) || Keyboard.IsKeyDown(Key.RightAlt)) && Keyboard.IsKeyDown(Key.F4))
                 e.Handled = true;
    }

    제시해 드린 답변이 도움이 되었기를 바랍니다.

    답변이 문제 해결에 도움이 되었다면 답변으로 채택을 부탁드립니다.
    하지만 문제 해결이 되지 않아서 정확한 답변을 원하는 경우에는 문제의 정보를 더 자세하게 답변으로 제공해주시기 바랍니다.

     

    2012년 6월 14일 목요일 오전 11:32
    중재자
  • 답변 감사합니다.

    아직 시도해보진 않았으나

    키 이벤트가 터널링될때 RichTextBox에 InputBindings 에 있는 내용을 확인해서 해당 이벤트를 handle되었다고 해주면 InputBindings 의 내용이 동작하지 않을것 같은데, 만약 동작하더라도 InputBinding의 내용이 동작한 후에 이벤트를 처리했다고 해주어야 리본컨트럴이 동작하지 않을것 같습니다.

    생각해보면 Main윈도우에서 PreviewKeyDown 이벤트를 처리하면 RichTextBox의 InputBindings 의 내용이 동작하지 않을 것이고, RibbonControl을 키 다운 이벤트를 처리함으로 위 방법으론 불가능할듯합니다. (하지만 한번 시도해 보겠습니다.)

    답변 감사드리고, 또 다른 자료가 있으면 답변 부탁드리겠습니다.

    2012년 6월 15일 금요일 오전 3:31