Wpf Richtextbox自定义验证

时间:2013-05-12 11:42:45

标签: wpf flowdocument

我需要在WPF Richtextbox中为flowdocuments进行一些高级验证,例如:

a)格式化只能应用于整个段落 b)不允许跨度 c)这些规则也需要应用于从剪贴板粘贴的文本。

最好的方法是什么?

1 个答案:

答案 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中,如果输入的数据不符合您的要求,您将抛出异常。