下面是我的代码。
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;
}
}