Ich entwickle eine App, um Feedback zu senden.
Grundsätzlich versuche ich, TextBox
Kommentare abzugeben, bin aber an die WinForms gewöhnt MultiLine=true
. Ich habe MinLines
auf 3 gesetzt, was dort ankommt, aber am liebsten würde es mir gefallen, wenn der Benutzer in der Lage ist, überall in diesem Block zu tippen - wie zum Beispiel die Eingabetaste drücken und Punktpunkte machen. Zum Beispiel:
- Item 1 blah
- Item 2 blahlb lahbvl d
Im Moment bleibt der Text jedoch in einer Zeile.
- Item 1 blah - Item 2 blahb blahb blah
Diese Kommentare helfen dann dabei, den Text einer E-Mail zu füllen, die gesendet wird. Es kann sinnlos sein, wenn ich beim Einfügen dieser Zeichenfolge in die E-Mail-Textzeichenfolge nicht einfach die gleiche Formatierung beibehalten kann (so dass es beim Senden genauso aussieht wie beim Tippen).
Kann ich erreichen, wonach ich suche, oder muss ich den gesamten Text in einer Zeile belassen?
label1.Content = textBox1.Text.Length;
mit dieser Zeile festlegen möchte, funktioniert dies, aber wenn ich die Eingabetaste im Textfeldzähler drücke, werden 2 Zeichen erhöht. Wie kann ich diese Aufgabe erledigen? Bitte helfen Sie mir.textBox1.Text.Replace("\r\n", " ").Length
. Seien Sie jedoch vorsichtig: Wenn dies als Benutzer-Feedback gedacht ist, weil Ihr Back-End die Anzahl der Zeichen begrenzt, müssen Sie die CR / LF möglicherweise als zwei Zeichen zählen, wenn das Back-End dies so zählt!Wenn Sie wie ich Steuerelemente direkt in XAML hinzufügen (ohne den Editor zu verwenden), werden Sie möglicherweise frustriert, dass sie sich auch nach dem Festlegen dieser beiden Eigenschaften nicht auf die verfügbare Höhe ausdehnen.
Um die TextBox zu dehnen, stellen Sie die ein
Height="Auto"
.AKTUALISIEREN:
Rückblickend denke ich, dass dies dank eines Standardstils für TextBoxen notwendig gewesen sein muss, der die Höhe eines Standards für die Anwendung irgendwo in den App-Ressourcen angibt. Es kann sich lohnen, dies zu überprüfen, wenn dies Ihnen geholfen hat.
quelle
Hier ist das Beispiel
XAML
, das dasTextBox
Akzeptieren von mehrzeiligem Text ermöglicht und eigene Bildlaufleisten verwendet:quelle
Im Gegensatz zu @Andre Luus wird durch die Einstellung
Height="Auto"
dieTextBox
Dehnung nicht erreicht. Die Lösung, die ich fand, war zu setzenVerticalAlignment="Stretch"
quelle
Die einzige Eigenschaft, die in WPF der entspricht
Winforms- Eigenschaft:
TextBox.Multiline = true
ist die WPF- Eigenschaft :
TextBox.AcceptsReturn = true
.Alle anderen Einstellungen, wie zum Beispiel
VerticalAlignement
,WordWrap
usw., nur steuern , wie die TextBox wirkt in der Benutzeroberfläche jedoch nicht die Auswirkungen auf dasMultiline
Verhalten.quelle