尝试使用 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>
对我来说似乎很不方便,在文本框中键入文本的过程中没有显示 ToolTip,在发生验证错误的那一刻,而是在鼠标指针有意放在文本框上之后才显示。
这似乎违反了用户对 UI 可用性的期望,所以我更喜欢将验证错误结果放在一个单独的 TextBlock 中,当输入验证错误发生时,自动立即出现。
但也许我错了,没有正确使用 ToolTip?也许有工具提示属性的设置使工具提示能够在没有故意将鼠标悬停在文本框上的情况下出现?
编辑(添加):
使用 ToolTip 显示我在 Microsoft MSDN 文档中找到的 TextBox 输入验证的结果:
http://msdn.microsoft.com/en-us/library/ms752347.aspx#data_validation
您是否使用工具提示来显示验证错误?如果是这样,您如何处理用户永远看不到它的事实(如果他/她不猜测将鼠标悬停在文本框上)?
最佳答案
我相信您以错误的方式使用 ToolTip,ToolTip 属性旨在在用户将鼠标悬停在某个控件上时为其提供有关某个控件的小上下文帮助,这就是它仅出现在鼠标悬停时的原因。
例如,如果您有一个文本框供用户输入他们的电话号码,您可能需要提供一个提示“请在此处输入您的电话号码”。
对于表单验证,您的 TextBlock 想法听起来要好得多。此外,您可以很好地控制显示,因为它是完全成熟的控制。
关于WPF TextBox 验证结果工具提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2119494/