WPF TextBox验证结果工具提示

时间:2010-01-22 18:22:57

标签: wpf validation user-interface properties tooltip

尝试使用WPF验证输入,我尝试使用ToolTip显示TextBox输入验证的结果,如下所示:

<Style.Triggers>
 <Trigger Property="Validation.HasError" Value="true">
    <Setter
        Property="ToolTip" 
        Value="{Binding RelativeSource={RelativeSource Self},
        Path=(Validation.Errors)[0].ErrorContent}"/>
    </Trigger>
</Style.Triggers>

对我来说非常不方便的是,在验证错误发生时,工具提示不会显示在文本框中输入文本的过程中,而是仅在鼠标指针有意放在TextBox上之后。

这似乎违反了用户对UI可用性的期望,因此我倾向于将验证错误结果放在单独的TextBlock中,当输入验证错误发生时,此时会自动立即显示。

但也许我错了,不要正确使用ToolTip?也许有ToolTip属性的设置使ToolTip无法在TextBox上有意地进行鼠标悬停?

已编辑(已添加):

使用ToolTip显示我在Microsoft MSDN文档中找到的TextBox输入验证结果:

http://msdn.microsoft.com/en-us/library/ms752347.aspx#data_validation

您是否使用工具提示显示验证错误?如果是这样,你如何与用户永远不会看到它相处的事实(如果他/她不想将鼠标悬停在文本框上)?

1 个答案:

答案 0 :(得分:5)

我相信你正在以错误的方式使用ToolTip,ToolTip属性旨在为用户提供关于某个控件的小上下文帮助,当他们将鼠标悬停在它上面时,这就是为什么它只出现在鼠标悬停上。

例如,如果您有一个文本框供用户输入其电话号码,您可能需要提供一个工具提示“请在此处输入您的电话号码”。

对于表单验证,您的TextBlock理念听起来要好得多。此外,您可以很好地控制显示屏,因为它具有完整的控制功能。