尝试使用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
您是否使用工具提示显示验证错误?如果是这样,你如何与用户永远不会看到它相处的事实(如果他/她不想将鼠标悬停在文本框上)?
答案 0 :(得分:5)
我相信你正在以错误的方式使用ToolTip,ToolTip属性旨在为用户提供关于某个控件的小上下文帮助,当他们将鼠标悬停在它上面时,这就是为什么它只出现在鼠标悬停上。
例如,如果您有一个文本框供用户输入其电话号码,您可能需要提供一个工具提示“请在此处输入您的电话号码”。
对于表单验证,您的TextBlock理念听起来要好得多。此外,您可以很好地控制显示屏,因为它具有完整的控制功能。