Вот как я собрал что-то, что действительно работает. Я просто хотел бы отдать должное человеку или людям, которые проложили путь к моему Пути Просветления .
Допустим, ваше приложение называется Heckler . Добавьте тег пространства имен для вашего приложения к объекту Window
:
<Window ...
xmlns:w="clr-namespace:Heckler"
...>
Теперь добавьте тег свойства CommandBindings
и начните коллекцию объектов CommandBinding
. Здесь мы добавляем пользовательскую команду Выбор комментариев :
<Window.CommandBindings>
<CommandBinding
Command="w:CustomCommands.CommentSelection"
CanExecute="CommentSelectionCanExecute"
Executed="CommentSelectionExecuted" />
</Window.CommandBindings>
Добавить MenuItem
к основному Menu
MenuItem
:
<Menu
IsMainMenu="True">
<MenuItem
Header="_File">
<MenuItem
Command="w:CustomCommands.CommentSelection">
</MenuItem>
</MenuItem>
</Menu>
...
</Window>
В коде Window
добавьте класс CustomCommands и пользовательскую команду:
public static class CustomCommands
{
// Ctrl+Shift+C to avoid collision with Ctrl+C.
public static readonly RoutedUICommand CommentSelection =
new RoutedUICommand("_Comment Selection",
"CommentSelection", typeof(MainWindow),
new InputGestureCollection()
{ new KeyGesture(Key.C, (ModifierKeys.Control | ModifierKeys.Shift)) });
}
Теперь подключите ваши обработчики событий:
private void CommentSelectionCanExecute(object sender, CanExecuteRoutedEventArgs e)
{
// Determines status of command.
e.CanExecute = true;
}
private void CommentSelectionExecuted(object sender, ExecutedRoutedEventArgs e)
{
// TO-DO: Insert magic here.
}
Тебе должно быть хорошо идти. Надеюсь, это поможет, и я ничего не пропустил!