/ / Wpf Richttextbox Benutzerdefinierte Überprüfung - wpf, flowdocument

Wpf Richtextbox Benutzerdefinierte Validierung - wpf, flowdocument

Ich benötige fortgeschrittene Validierungen in WPF-Richtextbox für Flussdokumente, etwa:

a) Die Formatierung kann nur auf den gesamten Absatz angewendet werden b) Es sind keine Spannweiten erlaubt c) Diese Regeln müssen auch für aus der Zwischenablage eingefügten Text angewendet werden.

Was ist der beste Weg, es zu tun?

Antworten:

0 für die Antwort № 1

Fügen Sie dem Ereignis einen Ereignishandler hinzu Text geändert Event und wenden Sie die Formatierung an, die Sie dort benötigen. Das Ereignis wird ausgelöst, unabhängig davon, wie der Text im Textfeld geändert wird (über die Zwischenablage eingefügt / über die Tastatur eingegeben).

<RichTextbox x:Name="myTextbox" TextChanged="myTextbox_TextChanged"/>

private void myTextbox_TextChanged(object sender, EventArgs e)
{
//Apply formatting here
}

Bearbeiten: Alternativ, wenn der Text an eine Art Datenquelle gebunden ist, können Sie die Datenvalidierung in der Bindung implementieren, wodurch das Textfeld rot hervorgehoben wird und sichergestellt wird, dass der Benutzer die gewünschte Eingabe eingibt.

 <RichTextbox x:Name="myTextbox" Text="{Binding TextSource, ValidatesOnExceptions=True}"/>

Im Setter der TextSource-Eigenschaft würden Sie eine Ausnahme auslösen, wenn die eingegebenen Daten nicht Ihren Anforderungen entsprechen.