[WinUI 3] 비활성화 메뉴 단축키 동작 개선

WinUI 3(UWP도 해당됨)는 메뉴를 눌러서 보이는 서브 메뉴가 Command에 의해 비활성화 되어 있을 때는 이 메뉴에 연결된 단축키가 동작하지 않습니다. 비활성화 되었을 때는 이 동작이 이상동작이 아닌데,

서브 메뉴가 활성화 될 조건이 되었어도 메뉴를 클릭해 서브 메뉴가 보이기 전까지는 단축키가 무시됩니다.

단축키를 입력했을 때 CanExecute()을 통해 명령어를 실행하도록 하면 참 좋을텐데요, 깃허브를 살펴봐도 뾰족한 공식 해결방법이 없습니다.

그런데 lmadhavan님이 유용한 코드를 공유해주셨네요.

KeyboardAccelerator를 적용할 위치 (일반적으로 생성자)에

menuBar.CreateShadowAccelerators(this);

로 추가하면, 메뉴가 활성/비활성 상관없이 단축키를 CanExecute()를 통해 확인 후 실행할 수 있게 됩니다.

2개의 좋아요