【问题标题】:Can I prevent the WPF ToolTip from showing up from inside the ToolTipOpening event handler?我可以阻止 WPF 工具提示从 ToolTipOpening 事件处理程序内部显示吗?
【发布时间】:2012-10-10 23:02:34
【问题描述】:

我有一个包含许多形状的画布,我希望它们中的每一个都显示一个字符串工具提示。为了节省一些内存,我想在工具提示打开时设置 ToolTip 值,所以我最初将 ToolTip 设置为每个形状上的空字符串,然后在它变得可见之前设置它的实际值(在 ToolTipOpening事件处理程序)。但是,有时我在 ToolTipOpening 事件处理程序中设置的 ToolTip 是一个空字符串,我不希望 ToolTip 在这些情况下显示。

我可以在 ToolTipOpening 事件处理程序中做些什么来隐藏它吗?或者也许是一种简单的方法来了解鼠标指针何时停留在某个形状上一段时间(以便以编程方式显示工具提示)?

【问题讨论】:

    标签: wpf tooltip visibility


    【解决方案1】:

    好的。我想我明白了。我使用 ToolTip 对象来设置每个形状的 ToolTip 属性(而不是使用字符串),然后我可以编写:

    (shape.ToolTip as ToolTip).Visibility = Visibility.Hidden;
    

    到目前为止它似乎工作......

    【讨论】:

      【解决方案2】:

      我正在处理同样的问题。 最佳解决方案是将 ToolTipEventArgs 事件数据标记为已处理。 这将阻止工具提示出现。

      来源:https://msdn.microsoft.com/en-us/library/system.windows.frameworkelement.tooltipopening(v=vs.110).aspx

      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;
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-02-06
        • 2014-12-06
        • 1970-01-01
        • 1970-01-01
        • 2010-10-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多