{"id":55000215,"date":"2020-04-01T00:00:00","date_gmt":"2020-08-25T08:47:58","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=215"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Das_TextBoxSteuerelement","status":"publish","type":"post","link":"https:\/\/vbentwickler.de\/Das_TextBoxSteuerelement\/","title":{"rendered":"Das TextBox-Steuerelement"},"content":{"rendered":"<p><b>Das wohl am meisten verwendete Steuer-element ist das TextBox-Steuerelement. Es dient zur Eingabe von Texten und bietet eine Menge von Eigenschaften, Ereignissen und Methoden, um damit zu arbeiten. Sie k&ouml;nnen ungebundene Textfelder nutzen, um Text einzugeben, der auf bestimmte Weise verarbeitet werden soll oder Textfelder &uuml;ber das Entity Data Model an die Datenquelle binden, um Datenbankinhalte anzuzeigen und zu bearbeiten. Dieser Artikel liefert die Grundlagen zum TextBox-Steuerelement unter WPF.<\/b><\/p>\n<p>Ein Textfeld ist unter WPF schnell erstellt. Sie f&uuml;gen einfach das &ouml;ffnende und das schlie&szlig;ende <b>TextBox<\/b>-Element in das Grid-Element ein und f&uuml;gen dazwischen einen Text hinzu:<\/p>\n<pre>&lt;Grid&gt;\r\n     &lt;TextBox&gt;Dies ist ein Beispieltext.&lt;\/TextBox&gt;\r\n&lt;\/Grid&gt;<\/pre>\n<p>Das Textfeld nimmt dann allerdings den gesamten Platz im Grid ein, sodass wir noch ein paar Anpassungen vornehmen. Entweder wir legen die Position und die Gr&ouml;&szlig;e absolut mit den Eigenschaften <b>Width<\/b>, <b>Height<\/b>, <b>Top <\/b>und <b>Left <\/b>fest oder wir f&uuml;gen zum Grid einige Zeilen und Spalten hinzu, damit wir gleich mehrere Steuer-elemente gleichm&auml;&szlig;ig anordnen k&ouml;nnen. Wir w&auml;hlen letztere Alternative, die Sie im Quellcode ansehen k&ouml;nnen und die im Entwurf wie in Bild 1 aussieht. Hier haben wir noch ein <b>Label<\/b>-Element in die erste Spalte der ersten Zeile eingef&uuml;gt und das <b>TextBox<\/b>-Element in die zweite Spalte der ersten Zeile:<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2020_02\/pic_215_001.png\" alt=\"Textfeld mit Bezeichnungsfeld\" width=\"424,7115\" height=\"115,602\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 1: Textfeld mit Bezeichnungsfeld<\/span><\/b><\/p>\n<pre>&lt;Label&gt;Beispieltext:&lt;\/Label&gt;\r\n&lt;TextBox Grid.Column=\"1\"&gt;Dies ist ein Beispieltext.&lt;\/TextBox&gt;<\/pre>\n<p><b>Formatierter Text<\/b><\/p>\n<p>Unterschiedliche Textformatierungen lassen sich mit dem <b>TextBox<\/b>-Steuerelement nicht anwenden oder anzeigen. Dazu ben&ouml;tigen wir beispielsweise das <b>RichTextBox<\/b>-Steuerelement.<\/p>\n<p><b>Padding: Abstand des Inhalts zum Textfeldrand<\/b><\/p>\n<p>Neben den Standardeigenschaften <b>Width<\/b>, <b>Height<\/b>, <b>Top <\/b>und <b>Left <\/b>ben&ouml;tigen Sie vermutlich noch die Eigenschaften <b>Margin <\/b>und <b>Padding<\/b>. Mit <b>Padding <\/b>stellen Sie den Abstand des Inhalts, also in der Regel des Textes, von den Begrenzungen des Steuerelements ein.<\/p>\n<p>Soll der Abstand oben, unten, rechts und links gleich gro&szlig; sein, legen Sie es zum Beispiel mit <b>Padding=&#8221;3&#8243; <\/b>fest. Wenn Sie unterschiedliche Abst&auml;nde w&uuml;nschen, geben Sie die Werte durch Kommata getrennt an, wobei die Reihenfolge links, oben, rechts und unten lautet.<\/p>\n<p><b>Margin: Abstand zu den umgebenden Steuerelementen<\/b><\/p>\n<p>Mit der Eigenschaft <b>Margin <\/b>hingegen geben Sie den Abstand an, den das Steuer-element zu den umgebenden Steuerelementen aufweisen soll. Wenn Sie also etwa ein Grid verwenden, um die Steuer-elemente anzuordnen, und keinen Wert f&uuml;r <b>Margin <\/b>angeben, gibt es keinen Abstand zwischen den Steuerelementen. Um einen solchen Abstand herzustellen, legen Sie also etwa <b>Margin=&#8221;3&#8243; <\/b>fest &#8211; so hat das Steuer-element jeweils einen Abstand von <b>3 <\/b>zum n&auml;chsten angrenzenden Element, in diesem Fall zu den gedachten Linien des <b>Grid<\/b>-Elements.<\/p>\n<p><b>Textfeld ausrichten<\/b><\/p>\n<p>F&uuml;r Textfelder gibt es die &uuml;blichen M&ouml;glichkeiten zur Ausrichtung. F&uuml;r die horizontale Ausrichtung im Grid verwenden Sie die Eigenschaft <b>HorizontalAlignment <\/b>mit den Werten <b>Center<\/b>, <b>Left<\/b>, <b>Right <\/b>und <b>Stretch<\/b>. F&uuml;r die vertikale Ausrichtung nutzen Sie die Eigenschaft <b>VerticalAlignment <\/b>mit den Werten <b>Bottom<\/b>, <b>Center<\/b>, <b>Stretch <\/b>und <b>Top<\/b>.<\/p>\n<p><b>Text ausrichten<\/b><\/p>\n<p>Nat&uuml;rlich k&ouml;nnen Sie auch den Text im Textfeld ausrichten. Dazu verwenden Sie die Eigenschaft <b>TextAlignment <\/b>mit den Werten <b>Center<\/b>, <b>Justify<\/b>, <b>Left <\/b>(Standardwert) und <b>Right<\/b>:<\/p>\n<pre>&lt;TextBox Text=\"Mittig zentrierter Text\" TextAlignment=\"Center\"&gt;&lt;\/TextBox&gt;<\/pre>\n<p><b>Inhalt des Steuerelements<\/b><\/p>\n<p>Den Inhalt des Steuerelements k&ouml;nnen Sie, wie oben gesehen, einfach zwischen das &ouml;ffnende und schlie&szlig;ende <b>TextBox<\/b>-Element einf&uuml;gen. Dies entspricht der Verwendung der Eigenschaft <b>Text<\/b>:<\/p>\n<pre>&lt;TextBox Text=\"Dies ist ein Beispieltext.\"&gt;&lt;\/TextBox&gt;<\/pre>\n<p><b>Eingebautes Kontextmen&uuml;<\/b><\/p>\n<p>Das <b>TextBox<\/b>-Steuerelement liefert standardm&auml;&szlig;ig ein Kontextmen&uuml; mit den drei Befehlen <b>Ausschneiden<\/b>, <b>Kopieren <\/b>und <b>Einf&uuml;gen <\/b>mit, das Sie wie &uuml;blich mit einem Klick der rechten Maustaste auf das Steuer-element anzeigen (siehe Bild 2). Dieses Kontextmen&uuml; k&ouml;nnen Sie anpassen. Wie das geht, erkl&auml;ren wir in einem weiteren Artikel namens <b>Kontextmen&uuml;s unter WPF <\/b>(<b>www.datenbankentwickler.net\/214<\/b>).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2020_02\/pic_215_004.png\" alt=\"Kontextmen&uuml; eines Textfeldes\" width=\"399,7285\" height=\"109,5553\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 2: Kontextmen&uuml; eines Textfeldes<\/span><\/b><\/p>\n<p>Weitere Eintr&auml;ge kommen zum Kontextmen&uuml; hinzu, wenn die Rechtschreibpr&uuml;fung aktiviert ist &#8211; siehe n&auml;chster Abschnitt.<\/p>\n<p><b>Rechtschreibpr&uuml;fung<\/b><\/p>\n<p>Standardm&auml;&szlig;ig ist keine Rechtschreibpr&uuml;fung f&uuml;r <b>TextBox<\/b>-Elemente aktiviert. Sie k&ouml;nnen diese jedoch leicht anschalten, indem Sie die Eigenschaft <b>Spellcheck.IsEnabled <\/b>auf den Wert <b>True <\/b>einstellen. Wenn Sie dann ein falsch geschriebenes Wort einf&uuml;gen, wird dieses rot unterstrichen. Klicken Sie dann mit der rechten Maustaste auf das Wort, zeigt das Kontextmen&uuml; Verbesserungsvorschl&auml;ge an (siehe Bild 3).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2020_02\/pic_215_005.png\" alt=\"Rechtschreibpr&uuml;fung im Textfeld mit Verbesserungsvorschl&auml;gen\" width=\"424,7115\" height=\"170,7514\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 3: Rechtschreibpr&uuml;fung im Textfeld mit Verbesserungsvorschl&auml;gen<\/span><\/b><\/p>\n<p><b>Eingabe kontrollieren<\/b><\/p>\n<p>Wenn Sie sicherstellen wollen, dass nicht mehr als eine bestimmte Anzahl Zeichen in einem Textfeld landen, k&ouml;nnen Sie die Anzahl mit der Eigenschaft <b>MaxLength <\/b>begrenzen. Geben Sie einfach die maximale Anzahl als Wert an:<\/p>\n<pre>&lt;TextBox MaxLength=\"50\"&gt;&lt;\/TextBox&gt;<\/pre>\n<p><b>Textumbruch aktivieren<\/b><\/p>\n<p>Normalerweise wird Text, der die Breite des Textfeldes &uuml;bersteigt, einfach nicht komplett angezeigt (Voraussetzung daf&uuml;r ist, dass sich das Textfeld nicht automatisch verbreitern kann &#8211; also wenn entweder eine feste Breite festgelegt oder die Breite des Fensters begrenzt ist). Das gilt auch f&uuml;r Textfelder, deren H&ouml;he f&uuml;r die Darstellung von mehr als einer Zeile ausreicht. Wenn sie m&ouml;chten, dass der Text am Ende des Textfeldes umgebrochen wird, k&ouml;nnen Sie die Eigenschaft <b>TextWrapping<\/b> verwenden. Diese bietet drei m&ouml;gliche Werte an:<\/p>\n<ul>\n<li><b>NoWrap<\/b>: Standardwert, hier erfolgt kein Zeilenumbruch.<\/li>\n<li><b>Wrap<\/b>: Der Text wird am Ende des Textfeldes umgebrochen. Wenn es keine M&ouml;glichkeit durch ein Leerzeichen oder &auml;hnliches Zeichen gibt, den Text am Wortende zu umbrechen, dann wird der Umbruch mitten im Wort eingef&uuml;gt.<\/li>\n<li><b>WrapWithOverflow<\/b>: Der Text wird am Ende des Textfeldes umgebrochen. Wenn es keine M&ouml;glichkeit durch ein Leerzeichen oder &auml;hnliches Zeichen gibt, den Text am Wortende zu umbrechen, dann erfolgt f&uuml;r dieses Wort kein Umbruch, sondern es wird abgeschnitten angezeigt.<\/li>\n<\/ul>\n<pre>&lt;Label Grid.Row=\"1\"&gt;Text mit TextWrapping=Wrap:&lt;\/Label&gt;\r\n&lt;TextBox Grid.Row=\"1\" Grid.Column=\"1\" Height=\"80\" Width=\"200\" TextWrapping=\"Wrap\"&gt;    Dies ist ein Beispieltext mit automatischem Zeilenumbruch undeinemsehrsehrsehrsehrsehrlangenWort.&lt;\/TextBox&gt;\r\n&lt;Label Grid.Row=\"2\"&gt;Text mit TextWrapping=WrapWithOverflow:&lt;\/Label&gt;\r\n&lt;TextBox Grid.Row=\"2\" Grid.Column=\"1\" Height=\"80\" Width=\"200\" TextWrapping=\"WrapWithOverflow\"&gt;    Dies ist ein Beispieltext mit automatischem Zeilenumbruch undeinemsehrsehrsehrsehrsehrlangenWort.&lt;\/TextBox&gt;<\/pre>\n<p>Beispiele sehen Sie in Bild 4.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2020_02\/pic_215_002.png\" alt=\"Beispiele f&uuml;r TextWrapping-Einstellungen\" width=\"449,6946\" height=\"174,7518\" \/><\/p>\n<div class=\"rcp_restricted\"><p><span style=\"color: #ff0000;\">M&ouml;chten Sie weiterlesen? Dann l&ouml;sen Sie Ihr Ticket!<\/span><br \/>\n<span style=\"color: #ff0000;\">Hier geht es zur Bestellung des Jahresabonnements des Magazins <strong>Visual Basic Entwickler<\/strong>:<\/span><br \/>\n<span style=\"color: #ff0000;\"><a style=\"color: #ff0000;\" href=\"https:\/\/shop.minhorst.com\/magazine\/363\/visual-basic-entwickler-jahresabonnement?c=77\">Zur Bestellung ...<\/a><\/span><br \/>\n<span style=\"color: #ff0000;\">Danach greifen Sie sofort auf <strong>alle rund 200 Artikel<\/strong> unseres Angebots zu - auch auf diesen hier!<\/span><br \/>\n<span style=\"color: #000000;\">Oder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein:<\/span><\/p>\n<\/div>\n\n\t\n\t<form id=\"rcp_login_form\"  class=\"rcp_form\" method=\"POST\" action=\"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000215\/\">\n\n\t\t\n\t\t<fieldset class=\"rcp_login_data\">\n\t\t\t<p>\n\t\t\t\t<label for=\"rcp_user_login\">Username or Email<\/label>\n\t\t\t\t<input name=\"rcp_user_login\" id=\"rcp_user_login\" class=\"required\" type=\"text\"\/>\n\t\t\t<\/p>\n\t\t\t<p>\n\t\t\t\t<label for=\"rcp_user_pass\">Password<\/label>\n\t\t\t\t<input name=\"rcp_user_pass\" id=\"rcp_user_pass\" class=\"required\" type=\"password\"\/>\n\t\t\t<\/p>\n\t\t\t\t\t\t<p>\n\t\t\t\t<input type=\"checkbox\" name=\"rcp_user_remember\" id=\"rcp_user_remember\" value=\"1\"\/>\n\t\t\t\t<label for=\"rcp_user_remember\">Remember me<\/label>\n\t\t\t<\/p>\n\t\t\t<p class=\"rcp_lost_password\"><a href=\"\/data\/wp\/v2\/posts\/55000215?rcp_action=lostpassword\"><\/a><\/p>\n\t\t\t<p>\n\t\t\t\t<input type=\"hidden\" name=\"rcp_action\" value=\"login\"\/>\n\t\t\t\t<input type=\"hidden\" name=\"rcp_redirect\" value=\"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000215\/\"\/>\n\t\t\t\t<input type=\"hidden\" name=\"rcp_login_nonce\" value=\"2987d086e8\"\/>\n\t\t\t\t<input id=\"rcp_login_submit\" class=\"rcp-button\" type=\"submit\" value=\"Login\"\/>\n\t\t\t<\/p>\n\t\t\t\t\t<\/fieldset>\n\n\t\t\n\t<\/form>\n<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Das wohl am meisten verwendete Steuer-element ist das TextBox-Steuerelement. Es dient zur Eingabe von Texten und bietet eine Menge von Eigenschaften, Ereignissen und Methoden, um damit zu arbeiten. Sie k&ouml;nnen ungebundene Textfelder nutzen, um Text einzugeben, der auf bestimmte Weise verarbeitet werden soll oder Textfelder &uuml;ber das Entity Data Model an die Datenquelle binden, um Datenbankinhalte anzuzeigen und zu bearbeiten. Dieser Artikel liefert die Grundlagen zum TextBox-Steuerelement unter WPF.<\/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":[66022020,662020,44000004,44000015],"tags":[],"yst_prominent_words":[],"class_list":["post-55000215","post","type-post","status-publish","format-standard","hentry","category-66022020","category-662020","category-Loesungen","category-WPFSteuerelemente"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000215","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=55000215"}],"version-history":[{"count":0,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000215\/revisions"}],"wp:attachment":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/media?parent=55000215"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/categories?post=55000215"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/tags?post=55000215"},{"taxonomy":"yst_prominent_words","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/yst_prominent_words?post=55000215"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}