我可以防止WPF工具提示从ToolTipOpening事件处理程序内部显示吗?
我有一个画布,里面有很多形状,我希望每个形状都显示一个字符串工具提示。为了节省一些内存,我想在工具提示打开时设置工具提示值,因此我最初将每个形状上的工具提示设置为空字符串,然后在它变为可见之前设置它的真实值(即在ToolTipOpening事件处理程序中)。但是,有时我在ToolTipOpening事件处理程序中设置的工具提示是空字符串,我不希望在这些情况下显示工具提示我可以防止WPF工具提示从ToolTipOpening事件处理程序内部显示吗?,wpf,tooltip,visibility,Wpf,Tooltip,Visibility,我有一个画布,里面有很多形状,我希望每个形状都显示一个字符串工具提示。为了节省一些内存,我想在工具提示打开时设置工具提示值,因此我最初将每个形状上的工具提示设置为空字符串,然后在它变为可见之前设置它的真实值(即在ToolTipOpening事件处理程序中)。但是,有时我在ToolTipOpening事件处理程序中设置的工具提示是空字符串,我不希望在这些情况下显示工具提示 我可以从ToolTipOpening事件处理程序中做些什么来隐藏它吗?或者是一种简单的方法,可以知道鼠标指针何时停留在形状上一
我可以从ToolTipOpening事件处理程序中做些什么来隐藏它吗?或者是一种简单的方法,可以知道鼠标指针何时停留在形状上一段时间(以便以编程方式显示工具提示)?确定。我想我明白了。我已经使用ToolTip对象来设置每个形状的ToolTip属性(而不是使用字符串),然后我可以写:
(shape.ToolTip as ToolTip).Visibility = Visibility.Hidden;
到目前为止似乎还有效…我正在处理同样的问题。 最好的解决方案是将ToolTipEventArgs事件数据标记为已处理。 这将阻止出现工具提示 资料来源:
public void CellToolTipOpening(object sender, ToolTipEventArgs args)
{
var cell = args.Source as CellValuePresenter;
if (cell == null)
return;
...
if (!string.IsNullOrWhiteSpace(ViewModel.Tooltip))
{
ToolTipService.SetToolTip(cell, ViewModel.Tooltip);
}
else
{
args.Handled = true;
}
}