Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我可以防止WPF工具提示从ToolTipOpening事件处理程序内部显示吗?_Wpf_Tooltip_Visibility - Fatal编程技术网

我可以防止WPF工具提示从ToolTipOpening事件处理程序内部显示吗?

我可以防止WPF工具提示从ToolTipOpening事件处理程序内部显示吗?,wpf,tooltip,visibility,Wpf,Tooltip,Visibility,我有一个画布,里面有很多形状,我希望每个形状都显示一个字符串工具提示。为了节省一些内存,我想在工具提示打开时设置工具提示值,因此我最初将每个形状上的工具提示设置为空字符串,然后在它变为可见之前设置它的真实值(即在ToolTipOpening事件处理程序中)。但是,有时我在ToolTipOpening事件处理程序中设置的工具提示是空字符串,我不希望在这些情况下显示工具提示 我可以从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;
    }
}