c#:关注WPF文本框的工具提示



下面是我的代码。

private void txtPassword_PasswordChanged(object sender, RoutedEventArgs e)
        {
            Boolean Capslock = Console.CapsLock;
            if (Capslock == true)
            {
                txtPassword.ToolTip = "Caps Lock is On.";
            }
        }

我试图得到一个工具提示显示在WPF控件上的TextChanged事件。上面的代码工作得很好,并且当我将鼠标移动到txtPassword控件上时,如果Caps Lock是on,则显示带有上述文本的工具提示。

但我正在寻找的东西,将显示工具提示,当你开始键入无论鼠标在txtPassword控制与否。比如当txtPassword Control被聚焦或者类似的东西

你可以考虑使用一个弹出窗口。

XAML:

<TextBox x:Name="txtPassword" Height="30" Width="100" TextChanged="txtPassword_TextChanged" ></TextBox>
<Popup x:Name="txtPasswordPopup" Placement="Top" PlacementTarget="{Binding ElementName=txtPassword}" IsOpen="False">
    <TextBlock x:Name="PopupTextBlock" Background="Wheat">CAPSLOCK IS ON!</TextBlock>
</Popup>

后台代码:

private void txtPassword_TextChanged(object sender, TextChangedEventArgs e)
    {
        Boolean Capslock = Console.CapsLock;
        if (Capslock == true)
        {
            PopupTextBlock.Text = "Caps Lock is On.";
            txtPasswordPopup.IsOpen = true;
        }
        else
        {
            txtPasswordPopup.IsOpen = false;
        }
    }

你需要使用工具提示控件并将StaysOpen和IsOpen属性设置为true,这将导致工具提示保持打开状态,直到你通过IsOpen =false(可能是lostFocus)关闭它。下面是代码:

 private void TextBox_GotFocus(object sender, RoutedEventArgs e)
    {
         Boolean Capslock = Console.CapsLock;
         if (Capslock == true)
         {
             ToolTip toolTip = new ToolTip();
             toolTip.Content = "Caps lock is on";
             toolTip.StaysOpen = true;
             toolTip.IsOpen = true;
             (sender as TextBox).ToolTip = toolTip;
         }
    }

相关内容

  • 没有找到相关文章

最新更新