我需要在WPF Richtextbox中为flowdocuments进行一些高级验证,例如:
a)格式化只能应用于整个段落 b)不允许跨度 c)这些规则也需要应用于从剪贴板粘贴的文本。
最好的方法是什么?
答案 0 :(得分:0)
向textchanged事件添加事件处理程序,并应用您需要执行的任何格式设置。无论文本框中的文本如何更改(通过剪贴板粘贴/从键盘输入),事件都将触发。
<RichTextbox x:Name="myTextbox" TextChanged="myTextbox_TextChanged"/>
private void myTextbox_TextChanged(object sender, EventArgs e)
{
//Apply formatting here
}
编辑:或者,如果您的文本绑定到某种数据源,您可以在绑定上实现数据验证,这将突出显示文本框红色并确保用户输入所需的输入。
<RichTextbox x:Name="myTextbox" Text="{Binding TextSource, ValidatesOnExceptions=True}"/>
在TextSource属性的setter中,如果输入的数据不符合您的要求,您将抛出异常。