如果我只创建一个工具提示并将其keepsopen属性设置为false,则其工作正常。但是,如果我创建多个工具提示并将其staysopen属性设置为false,则只有在鼠标单击后我创建的第一个工具提示才会关闭。其他的保持开放。
为什么?
示例代码:
<!DOCTYPE html>
<html>
<head>
<title>Validation</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
</head>
<body>
<input validate="something" type="number" maxlength="9" />
<input validate="something" type="number" maxlength="9" />
<script>
$('input[type=number][validate=something]').on('keypress', function(evt,obj) {
var element =**pick the object**// $('input[type=number][validate=SSN]');
var len = element.val().length + 1;
var max = element.attr("maxlength");
if (!(len <= max)) {
// some code
}
});
</script>
</body>
</html>
答案 0 :(得分:0)
您正在强制打开两个工具提示,然后不允许它们保持打开状态,这会导致异常。
System.NotSupportedException未处理 消息:PresentationFramework.dll中出现未处理的“System.NotSupportedException”类型异常 附加信息:默认情况下,ToolTip属性不支持将StaysOpen设置为false的ToolTip元素。
如果您希望它们保持打开状态,请更新ToolTipService.ShowDurationProperty
ToolTipService.ShowDurationProperty.OverrideMetadata(typeof(DependencyObject), new FrameworkPropertyMetadata(Int32.MaxValue));
{
ToolTip tooltip = new ToolTip {Content = "Password cannot be empty."};
Password_PasswordBox.ToolTip = tooltip;
tooltip.PlacementTarget = Password_PasswordBox;
tooltip.Placement = System.Windows.Controls.Primitives.PlacementMode.Top;
tooltip.IsOpen = true;
//tooltip.StaysOpen = false;
}
{
ToolTip tooltip2 = new ToolTip { Content = "Username cannot be empty." };
Username_TextBox.ToolTip = tooltip2;
tooltip2.PlacementTarget = Username_TextBox;
tooltip2.Placement = System.Windows.Controls.Primitives.PlacementMode.Top;
tooltip2.IsOpen = true;
//tooltip2.StaysOpen = false;
}