So habe ich etwas zusammengeschustert, das tatsächlich funktioniert. Ich wünschte nur, ich könnte die Person oder die Personen nennen, die mir den Weg zu meiner Arbeit geebnet haben. Pfad der Erleuchtung .
Nehmen wir an, Ihre Anwendung heißt Heckler . Fügen Sie ein Namespace-Tag für Ihre Anwendung in die Window
Objekt:
<Window ...
xmlns:w="clr-namespace:Heckler"
...>
Fügen Sie nun eine CommandBindings
und starten Sie Ihre Sammlung von CommandBinding
Objekte. Hier fügen wir einen benutzerdefinierten Befehl hinzu Kommentar Auswahl :
<Window.CommandBindings>
<CommandBinding
Command="w:CustomCommands.CommentSelection"
CanExecute="CommentSelectionCanExecute"
Executed="CommentSelectionExecuted" />
</Window.CommandBindings>
Hinzufügen einer MenuItem
zu einer Haupt Menu
's MenuItem
:
<Menu
IsMainMenu="True">
<MenuItem
Header="_File">
<MenuItem
Command="w:CustomCommands.CommentSelection">
</MenuItem>
</MenuItem>
</Menu>
...
</Window>
In der Window
Code-Behind, fügen Sie Ihre CustomCommands Klasse und benutzerdefinierten Befehl:
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)) });
}
Jetzt verkabeln Sie Ihre Event-Handler:
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.
}
Dann sollte es klappen. Ich hoffe, das hilft und ich habe nichts übersehen!