Вот как я собрал то, что на самом деле работает. Мне просто жаль, что я не мог счесть человека или людей, которые проложили путь к моему пути Путь Просветления.
Предположим, ваше объявление называется 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
«s 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.
}
Вы должны быть хорошо идти. Надеюсь, это поможет, и я ничего не пропустил!