代码之家  ›  专栏  ›  技术社区  ›  Svetlozar Angelov

Wpf-显示文本框工具提示

  •  3
  • Svetlozar Angelov  · 技术社区  · 17 年前
    <TextBox Name="txtInput">
    <TextBox.ToolTip>
        <ToolTip Name="TestToolTip">
            This a test message
        </ToolTip>
    </TextBox.ToolTip>
    

    private void btnClick_Click_1(object sender, RoutedEventArgs e)
    {
        txtInput.Focus();
        ToolTipTest.IsVisible = true;
    }
    

    1 回复  |  直到 17 年前
        1
  •  5
  •   Anderson Imes    17 年前

    首先,您应该使用标准验证来验证您正在做的事情。从上面的评论中,我可以看出这就是您正在做的事情,您应该知道WPF有一个非常好的内置系统,可以准确地做您想要做的事情,而无需强制执行(并且非常可重用)。

    下面是一个样式示例,当绑定到的值未验证时(使用IDataErrorInfo),可以应用于所有文本框。

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

    您还可以考虑一个更标准的UI,它使用装饰器层在验证失败的控件旁边放置一个验证失败指示符。这里有一个关于这个的例子:

    http://blogsprajeesh.blogspot.com/2009/03/handling-error-in-wpf-idataerrorinfo.html

    祝你好运