मुझे अंततः एक्सएएमएल में कमांड के साथ ऐसा करने का तरीका पता चला। आप एक कस्टम आदेश का नाम (नहीं ApplicationCommands.Open तरह पूर्वनिर्धारित आदेशों में से एक) का उपयोग करना चाहते दुर्भाग्य से अगर यह यह है, कुछ इस तरह codebehind में परिभाषित करने के लिए आवश्यक है:
namespace MyNamespace {
public static class CustomCommands
{
public static RoutedCommand MyCommand =
new RoutedCommand("MyCommand", typeof(CustomCommands));
}
}
XAML कुछ इस तरह चला जाता है। ..
<Window x:Class="MyNamespace.DemoWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:MyNamespace"
Title="..." Height="299" Width="454">
<Window.InputBindings>
<KeyBinding Gesture="Control+O" Command="local:CustomCommands.MyCommand"/>
</Window.InputBindings>
<Window.CommandBindings>
<CommandBinding Command="local:CustomCommands.MyCommand" Executed="MyCommand_Executed"/>
</Window.CommandBindings>
</Window>
और निश्चित रूप से आप एक हैंडलर की जरूरत है:
private void MyCommand_Executed(object sender, ExecutedRoutedEventArgs e)
{
// Handle the command. Optionally set e.Handled
}
वहाँ शॉर्टकट कुंजी, जैसे रजिस्टर करने के लिए किसी भी अन्य तरीके हैं एक्सएएमएल में? – Qwertie
इस धागे को देखें। http://stackoverflow.com/questions/612966/keyboard-events-in-a-wpf-mvvm- appplication –