2017-04-05 1 views
0

Ich möchte eine Ellipse (..) in das Rich-Text-Feld setzen.Wie Sie Auslassungspunkte (...) in RichTextBox setzen

In normalen TextBlock, TextTrimming="WordEllipsis" hat eine Eigenschaft, die die Länge beschränkt, um Ellipsen Darstellung zu ermöglichen, aber Rich Textfelder nicht. Und es sollte jetzt nur als Rich Textbox implementiert werden. Textblöcke sind nicht erlaubt.

Ich möchte um zwei oder drei Zeilen trimmen und eine Ellipse (..) -Option hinzufügen. Gibt es einen guten Weg?

Ich möchte Ihnen zeigen, wie ich RichTextBox verwende, aber der Ruf ist gering.

+1

Während TextBlock Text * * anzeigt, ist jede TextBox so konzipiert, * Text * zu bearbeiten. Bearbeiten von Text, der nicht vollständig dargestellt wird, funktioniert nicht wirklich gut, so dass es scheint, als ob Sie * show * text möchten, aber aus irgendeinem Grund bevorzugen Sie dies in einer RichTextBox ... wollen Sie etwas Hintergrund zu dieser Entscheidung erklären ? – grek40

+0

Mögliches Duplikat von [TextBox TextTrimming] (http://stackoverflow.com/questions/10227014/textbox-texttrimming) –

+0

@ grek40 Sie haben Recht, dass ich es mit TextBlock machen kann. Aber ich verwende eine RichTextBox, die den formatierten Text unterstützen kann, der Text wie enthalten kann. Also dafür haben wir rtf Textformat verwendet, das in der Datenbank gespeichert wird und es behält die gesamte Formatierung bei, ich weiß nicht, ob Textbloxk die Textformatierung sehr leicht unterstützt oder nicht. Jetzt wird bereits RichTextBox verwendet und es wird sehr schwierig sein, es durch TextBlock zu ersetzen, also schlagen Sie bitte einen Weg vor, es mit RichTextBox zu machen. –

Antwort

0

Sie nicht

Das Auslassungs Konzept ist, angegeben als von grek40, etwas, das nur funktioniert, wenn Text. Als ein Beispiel, sagen wir, die Ellipse wird angezeigt, und der Benutzer versucht, teilweise Text in Ihrem RichTextBox, einschließlich der Ellipse, was wäre das ausgewählte Ergebnis sein? Du kannst es nicht sagen.

Vielleicht

Da ein Auslassungszeichen ist in der Regel als Ersatz für ein Scrollbar, Text versteckt, anstatt so dass Sie für den Zugriff durch Scrollen, können Sie durch die Verwendung eines WPF Stil zu fälschen es in der Lage sein. Erstellen Sie einen Stil, der ein Symbol/Bild einer Ellipse anzeigt (Platzierung liegt bei Ihnen), wenn die Scrollbar visibility trigger ausgelöst wird. Sie müssten die Scrollbar deaktivieren, sobald die Ellipse sichtbar ist. Dies erfordert offensichtlich mehr Aufwand als das einfache Festlegen einer Eigenschaft, und es kann leicht zu einem Albtraum der Benutzererfahrung werden, wenn es nicht sorgfältig implementiert wird, also sei gewarnt.

Hinweis: Ein weiterer Kommentar (von Walt Ritscher) mit einer ähnlichen Frage verknüpft, die Lösung ist ähnlich zu dieser.

Alternative Vielleicht

Ein weiteres gefälscht Auslassungs durch Verwendung von zwei verschiedenen RichTextBox Kontrollen erreicht werden konnte. Die erste RichTextBox hätte ReadOnly zu true gesetzt. Trimmen Sie Ihren Text auf eine maximal zulässige Länge, und fügen Sie eine Ellipse hinzu und zeigen Sie sie innerhalb dieser ersten RichTextBox an. Wenn der Benutzer den Text bearbeiten muss, verstecken Sie die erste RichTextBox und zeigen Sie eine zweite RichTextBox, die Ihren gesamten Text enthält.

+0

Bitte überprüfen Sie meine Kommentare oben. –

+0

@KangDongGyun, Sie haben keine neuen Details zu Ihrer Frage hinzugefügt. Weder "RichTextBox" noch "TextBox" (was nicht "TextBlock" ist) unterstützen Ellipsen. Die Verwendung von 'TextBlock' ist nicht möglich, da die spezielle Textformatierung einer RichTextBox, die Sie benötigen, nicht unterstützt wird. Das kann man nur mit einem Hack erreichen, wie ich schon gesagt habe. – r41n

+0

@KangDongGyun Ich fügte eine andere Alternative hinzu, es sollte viel einfacher zu implementieren sein. Immer noch nur ein Hack. – r41n

Verwandte Themen