当要打开工具提示时,我想在状态栏内的wpf应用程序中显示任何控件的工具提示文本。

当然,我可以尝试递归遍历主窗口的所有子控件,
将其ToolTipOpening事件设置为始终相同的方法。但是有没有更简单的方法?

类似于Application.Current.AnyToolTipOpening事件?

最佳答案

当然,请尝试以下操作:

EventManager.RegisterClassHandler(typeof(FrameworkElement), FrameworkElement.ToolTipOpeningEvent, new ToolTipEventHandler(ToolTipHandler));

为从FrameworkElement派生的所有类注册一个处理程序。

您的处理程序方法可能如下所示:
   private void ToolTipHandler(object sender, ToolTipEventArgs e) {
        // To stop the tooltip from appearing, mark the event as handled
        e.Handled = true;
        FrameworkElement source = e.Source as FrameworkElement;
        if (source != null) {
            MessageBox.Show(source.ToolTip.ToString()); // or whatever you like
        }
    }

关于wpf - “Intercept”在整个应用程序范围内打开任何工具提示,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1067899/

10-10 12:35