这是我的代码。
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已启用,则会显示带有上述文本的工具提示。
但我正在寻找能够在您开始输入时显示工具提示的内容,无论鼠标是否超过txtPassword控件。就像txtPassword控件集中或类似的时候一样
任何帮助将不胜感激。
答案 0 :(得分:6)
您可能需要考虑使用PopUp。
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;
}
}
答案 1 :(得分:3)
您需要使用工具提示控件并将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;
}
}