6

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

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

Application.Current.AnyToolTipOpening事件一样的东西?

4

2 回答 2

9

当然,试试这个:

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
        }
    }
于 2009-07-01T10:26:11.663 回答
1

谢谢,那行得通。此外,要使状态栏文本在鼠标离开带有工具提示的控件时消失:

 EventManager.RegisterClassHandler(typeof(FrameworkElement),
                  MouseLeaveEvent, new MouseEventHandler(ClearText));
于 2009-07-02T08:47:09.930 回答