7
일부 사용자 지정 논리를 기반으로 페이지에 도움말 파일을 열려고합니다. 모든 창 (주 창 및 모달 대화 상자)에서 F1 키를 누른 사용자를 어떻게 처리합니까?모든 WPF 창에서 바로 가기 키를 처리하려면 어떻게해야합니까?
나는 단일 창에서 F1을 처리하는 방법을 알고 있지만이 작업은 전체적으로 수행 할 수 있으므로 모든 창에 동일한 코드를 추가 할 필요가 없습니다.
다음은 F1이 하위 창에서 작동하지 않는다는 것을 테스트 한 테스트입니다.
Window1.xaml :
<Window x:Class="WpfApplication2.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Window.CommandBindings>
<CommandBinding Command="ApplicationCommands.Help"
Executed="CommandBinding_Executed"/>
</Window.CommandBindings>
<Grid>
<Button Content="Open a new window"
Click="Button_Click"/>
</Grid>
</Window>
Window1.xaml.cs은 :
using System.Windows;
using System.Windows.Input;
namespace WpfApplication2
{
partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
}
void CommandBinding_Executed(object sender, ExecutedRoutedEventArgs e)
{
MessageBox.Show("Help");
}
void Button_Click(object sender, RoutedEventArgs e)
{
new Window().ShowDialog();
}
}
}
이것은 하위 컨트롤에도 적용됩니다. 나는. 자식 컨트롤이 선택되면 그 타입의 핸들러가 등록 된 경우 F1을 처리합니다. 그렇지 않으면 윈도우 핸들러가 트리거됩니다. –