{"id":55000248,"date":"2021-02-01T00:00:00","date_gmt":"2024-04-25T15:36:46","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=248"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"IsCancel_AbbrechenSchaltflaeche_festlegen","status":"publish","type":"post","link":"https:\/\/vbentwickler.de\/IsCancel_AbbrechenSchaltflaeche_festlegen\/","title":{"rendered":"IsCancel: Abbrechen-Schaltfl&auml;che festlegen"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg02.met.vgwort.de\/na\/3e3eb838fc804fbbbba6cb3be371583f\" width=\"1\" height=\"1\" alt=\"\"><\/p>\n<p><b>Unter WPF gibt es verschiedene Wege, um zu definieren, was in einem Fenster beim Bet&auml;tigen der Escape-Taste geschehen soll. Sie k&ouml;nnten beispielsweise die Ereignisse abfangen, die beim Dr&uuml;cken einer Taste ausgel&ouml;st werden und dabei pr&uuml;fen, ob der Benutzer die Escape-Taste gedr&uuml;ckt hat. Meist jedoch gibt es eine Schaltfl&auml;che, welche die gleiche Funktion bereithalten soll wie die Escape-Taste &#8211; zum Beispiel das Schlie&szlig;en des Fensters &uuml;ber eine Abbrechen-Schaltfl&auml;che ohne Speichern der Daten. Wie Sie dies ganz einfach mithilfe des Attributs &#8220;IsCancel&#8221; erledigen, zeigt der vorliegende Artikel.<\/b><\/p>\n<p>Theoretisch k&ouml;nnten Sie die Tastatureingaben des Benutzers abfangen, bis dieser die <b>Escape<\/b>-Schaltfl&auml;che bet&auml;tigt und dann in einer entsprechenden Ereignismethode die gew&uuml;nschten Anweisungen ausf&uuml;hren &#8211; zum Beispiel zum Schlie&szlig;en des aktuellen Fensters mit Verwerfen der get&auml;tigten &Auml;nderungen.<\/p>\n<p>Allerdings bietet WPF f&uuml;r das <b>Button<\/b>-Steuerelement ein Attribut, mit dem Sie dies noch einfacher erledigen k&ouml;nnen &#8211; ohne eine Zeile zus&auml;tzlichen Code. W&auml;hrend wir im folgenden Beispiel der Schaltfl&auml;che <b>btnOK <\/b>den Wert <b>True <\/b>f&uuml;r das Attribut <b>IsDefault <\/b>zuweisen, wodurch die dahinter stehende Ereignismethode beim Verwenden der Eingabetaste ausgel&ouml;st wird &#8211; mehr zu diesem Attribut siehe Artikel <b>IsDefault: Standardschaltfl&auml;che festlegen<\/b> (<b>www.datenbankentwickler.net\/250)<\/b>, verwenden wir f&uuml;r die Schaltfl&auml;che <b>cmdCancel <\/b>das Attribut <b>IsCancel<\/b>. Auch f&uuml;r dieses legen wir den Wert <b>True <\/b>fest. Das bewirkt, dass das Bet&auml;tigen der <b>Escape<\/b>-Taste durch den Benutzer direkt an die Ereignismethode <b>Click <\/b>dieser Schaltfl&auml;che weitergeleitet wird:<\/p>\n<pre>&lt;StackPanel Grid.Row=\"2\" Orientation=\"Horizontal\" VerticalAlignment=\"Top\"&gt;\r\n     &lt;Button x:Name=\"btnOK\" IsDefault=\"True\" Click=\"btnOK_Click\"&gt;OK&lt;\/Button&gt;\r\n     &lt;Button x:Name=\"btnCancel\" IsCancel=\"True\" Click=\"btnCancel_Click\"&gt;Cancel&lt;\/Button&gt;\r\n&lt;\/StackPanel&gt;<\/pre>\n<p>Dieser weisen Sie dann die entsprechende Anweisung zu &#8211; im folgenden Beispiel einfach nur die Anzeige eines Meldungsfensters:<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>btnCancel_Click(sender<span style=\"color:blue;\"> As Object<\/span>, e<span style=\"color:blue;\"> As <\/span>RoutedEventArgs)\r\n     MessageBox.Show(\"Cancel\")\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Im Gegensatz zur Schaltfl&auml;che mit dem Wert <b>True <\/b>f&uuml;r das Attribut <b>IsDefault <\/b>wird die Taste mit <b>IsCancel <\/b>bei jeder Bet&auml;tigung der <b>Escape<\/b>-Taste ausgel&ouml;st, auch wenn der Fokus sich gerade auf einer anderen Schaltfl&auml;che befindet.<\/p>\n<h2>Downloads zu diesem Beitrag<\/h2>\n<p>Enthaltene Beispieldateien:<\/p>\n<p>IsCancel.zip<\/p>\n<p><a href=\"..\/fileadmin\/beispiele\/A69A876A-7F23-411E-99BB-52AE16884AEC\/vbe_248.zip\">Download<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Unter WPF gibt es verschiedene Wege, um zu definieren, was in einem Fenster beim Bet&auml;tigen der Escape-Taste geschehen soll. Sie k&ouml;nnten beispielsweise die Ereignisse abfangen, die beim Dr&uuml;cken einer Taste ausgel&ouml;st werden und dabei pr&uuml;fen, ob der Benutzer die Escape-Taste gedr&uuml;ckt hat. Meist jedoch gibt es eine Schaltfl&auml;che, welche die gleiche Funktion bereithalten soll wie die Escape-Taste &#8211; zum Beispiel das Schlie&szlig;en des Fensters &uuml;ber eine Abbrechen-Schaltfl&auml;che ohne Speichern der Daten. Wie dies ganz einfach mithilfe des Attributs &#8220;IsCancel&#8221; erledigen, zeigt der vorliegende Artikel.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[66012021,662021,44000003],"tags":[],"yst_prominent_words":[],"class_list":["post-55000248","post","type-post","status-publish","format-standard","hentry","category-66012021","category-662021","category-WPFGrundlagen"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000248","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/comments?post=55000248"}],"version-history":[{"count":0,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000248\/revisions"}],"wp:attachment":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/media?parent=55000248"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/categories?post=55000248"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/tags?post=55000248"},{"taxonomy":"yst_prominent_words","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/yst_prominent_words?post=55000248"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}