Lies in den Artikel rein und unten bekommst Du ein unschlagbares Angebot!
Unter WPF gibt es verschiedene Wege, um zu definieren, was in einem Fenster beim Betätigen der Escape-Taste geschehen soll. Sie könnten beispielsweise die Ereignisse abfangen, die beim Drücken einer Taste ausgelöst werden und dabei prüfen, ob der Benutzer die Escape-Taste gedrückt hat. Meist jedoch gibt es eine Schaltfläche, welche die gleiche Funktion bereithalten soll wie die Escape-Taste – zum Beispiel das Schließen des Fensters über eine Abbrechen-Schaltfläche ohne Speichern der Daten. Wie Sie dies ganz einfach mithilfe des Attributs “IsCancel” erledigen, zeigt der vorliegende Artikel.
Theoretisch könnten Sie die Tastatureingaben des Benutzers abfangen, bis dieser die Escape-Schaltfläche betätigt und dann in einer entsprechenden Ereignismethode die gewünschten Anweisungen ausführen – zum Beispiel zum Schließen des aktuellen Fensters mit Verwerfen der getätigten Änderungen.
Allerdings bietet WPF für das Button-Steuerelement ein Attribut, mit dem Sie dies noch einfacher erledigen können – ohne eine Zeile zusätzlichen Code. Während wir im folgenden Beispiel der Schaltfläche btnOK den Wert True für das Attribut IsDefault zuweisen, wodurch die dahinter stehende Ereignismethode beim Verwenden der Eingabetaste ausgelöst wird – mehr zu diesem Attribut siehe Artikel IsDefault: Standardschaltfläche festlegen (www.datenbankentwickler.net/250), verwenden wir für die Schaltfläche cmdCancel das Attribut IsCancel. Auch für dieses legen wir den Wert True fest. Das bewirkt, dass das Betätigen der Escape-Taste durch den Benutzer direkt an die Ereignismethode Click dieser Schaltfläche weitergeleitet wird:
<StackPanel Grid.Row="2" Orientation="Horizontal" VerticalAlignment="Top"> <Button x:Name="btnOK" IsDefault="True" Click="btnOK_Click">OK</Button> <Button x:Name="btnCancel" IsCancel="True" Click="btnCancel_Click">Cancel</Button> </StackPanel>
Dieser weisen Sie dann die entsprechende Anweisung zu – im folgenden Beispiel einfach nur die Anzeige eines Meldungsfensters: