In einem WPF TextBox kann ich Zeichen in einer Zeichenfolge, die ein eine bestimmte Länge röten überschreiten?
-
05-07-2019 - |
Frage
Ich verwende eine TextBox
Kontrolle und wollen, dass die Zeichen rot nach einer bestimmten Anzahl von Zeichen drehen Benutzer zu zeigen, dass sie zu viel eingegeben haben. Ich will nicht kürzen, da der Benutzer, dass „wirklich wichtige Gedanken“ eingegeben haben könnte und wenn ich abgeschnitten, sie würden es verlieren. Ich habe Validierung auf meinem zugrunde liegenden Geschäftsmodell, das mir sagt, wenn die Eingabe ungültig ist und ich meinen Stil TextBox
Ungültigkeit zu zeigen.
Ich möchte auch den Text Style
. Kann ich das eine TextBox
verwenden, oder muss ich zu einem RichTextBox
gehen? Mein zugrunde liegender Wert ist nur ein gerade String.
Lösung
Ich nehme an, Sie verwenden den Bestand WPF Validierungsmechanismus - ValidationRules
. Wenn ja, sollten Sie eine Trigger
auf Validation.HasError == true
definieren, und legen Sie TextBox
Eigenschaften nach Bedarf. Zum Beispiel wird die folgende Text mit rot markieren, wenn es ungültig ist.
<TextBox>
<TextBox.Text>
<Binding ...>
<Binding.ValidationRules>
...
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
<TextBox.Style>
<Style TargetType="{x:Type TextBox}">
<Style.Triggers>
<Trigger Property="Validation.HasError" Value="True">
<Setter Property="Foreground" Value="Red" />
</Trigger>
</Style.Triggers>
</Style>
</TextBox.Style>
</TextBox>
Andere Tipps
Dies ist eine Art verrückt Antwort und ich habe es noch nicht ausprobiert, aber wenn es funktioniert, würden Sie in der Lage sein, weiterhin ein Textbox zu verwenden, anstatt ein reichen Textbox.
Was passiert, wenn Sie einen Farbverlauf verwenden Sie den Text (oder wenn nicht der Text, der Textbox Hintergrund, wenn das war für Sie akzeptabel) zu malen.
Sie würden die Gradienten bauen, damit es weiß bis zu dem Punkt war der Eingang zu lang bekam und rot nach-Stationen. Natürlich, bis der Text bekam zu lange die Bürste ganz weiß sein würde.
Dies würde Text Messung beinhaltet die Steigung Definition richtig zu machen (da proportionale Schriftarten der gültige Bereich verursachen würden eine andere Größe auf den Buchstaben in Abhängigkeit steht) und würde erfordern, wird die Bürste an jedem Zeichen eingegeben, berechnet und zugewiesen.