2016-06-21 2 views
0

Я использовал UserControl для моего приложения, и мне нужно поставить сочетание клавиш для моего приложения я поместил этот код, но не working.Anyone предложение плзЯрлык горячих клавиш для WPF

Мой XAML код

<Button Name="ucBtnUpload" ToolTip="Upload F2" Cursor="Hand" Click="ucBtnUpload_Click" KeyUp="ucBtnUpload_KeyUp_1" > 

Мой код За

private void ucBtnUpload_KeyUp_1(object sender, KeyEventArgs e) 
{ 
if (e.Key == Key.F2) 
      { 

       Test opj = new Test(); 
       opj.ShowDialog(); 

      } 
} 
+0

Уволен ли ваш обработчик? Вы правильно подключили мероприятие в XAML? '' –

+0

+2

Вы уверены что вы хотите Key-Event на кнопку? Это требует, чтобы кнопка была сфокусирована ... – lokusking

ответ

0

Вы должны попробовать что-то похожее на этот

private void AddHotKeys() 
{ 
     try 
     { 
      RoutedCommand firstSettings = new RoutedCommand(); 
      firstSettings.InputGestures.Add(new KeyGesture(Key.A, ModifierKeys.Alt)); 
      CommandBindings.Add(new CommandBinding(firstSettings , My_first_event_handler)); 

      RoutedCommand secondSettings = new RoutedCommand(); 
      secondSettings.InputGestures.Add(new KeyGesture(Key.B, ModifierKeys.Alt)); 
      CommandBindings.Add(new CommandBinding(secondSettings , My_second_event_handler)); 
     } 
     catch (Exception err) 
     { 
      //handle exception error 
     } 
} 

События

private void My_first_event_handler(object sender, ExecutedRoutedEventArgs e) 
{ 
     //handler code goes here. 
     MessageBox.Show("Alt+A key pressed"); 
} 

private void My_second_event_handler(object sender, RoutedEventArgs e) 
{ 
    //handler code goes here. 
    MessageBox.Show("Alt+B key pressed"); 
} 

Если вы следуете MVVM вы могли бы попробовать это reference

<UserControl.InputBindings> 
<KeyBinding Modifiers="Control" 
      Key="E" 
      Command="{input:CommandBinding EditCommand}"/> 

See the reference
msdn adding key bindings

0

Вы должны быть в состоянии сделать это в XAML

<Window.InputBindings> 
    <KeyBinding Command="{Binding MyCommand}" Key="F2"/> 
</Window.InputBindings> 

<Button Command="{Binding MyCommand}"/> 

МояКоманда является ICommand реализован в ваших окнах ViewModel/вида.

Таким образом, и кнопка, и входная привязка F2 будут выполнять ту же команду.

Смежные вопросы