WPF TextBox 验证结果工具提示

标签 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>

对我来说似乎很不方便,在文本框中键入文本的过程中没有显示 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/

相关文章:

ruby-on-rails - 如何在 Rails 中验证今天之后的日期?

javascript - 迭代 bean 列表并验证 javascript 中的数据

javascript - 检查字段中的字母和数字字符

c# - 从外部线程关闭模式对话框 - C#

c# - 选择列表框中的第一项

wpf - TreeViewItem MouseDoubleClick 事件和 MvvmLight

c# - 如果注册了 DispatcherUnhandledException,则 Control.LayoutUpdated 中发生异常后发生堆栈溢出

c# - 数据绑定(bind)到文本框不起作用

macos - qt 5.8 os x 在 GUI 应用程序打开时捕获传递的参数

c# - c# 应用程序的所有字符仅在一台计算机中显示为方 block 字符