首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >"Intercept“打开任何appwide工具提示

"Intercept“打开任何appwide工具提示
EN

Stack Overflow用户
提问于 2009-07-01 08:14:07
回答 2查看 1.5K关注 0票数 6

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

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

类似Application.Current.AnyToolTipOpening事件的东西?

EN

回答 2

Stack Overflow用户

发布于 2009-07-01 10:26:12

当然,试试这个:

代码语言:javascript
复制
EventManager.RegisterClassHandler(typeof(FrameworkElement), FrameworkElement.ToolTipOpeningEvent, new ToolTipEventHandler(ToolTipHandler));

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

您的处理程序方法可能如下所示:

代码语言:javascript
复制
   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
        }
    }
票数 9
EN

Stack Overflow用户

发布于 2009-07-02 08:47:10

谢谢,这很管用。此外,要使状态栏文本在鼠标离开带有工具提示的控件时消失,请执行以下操作:

代码语言:javascript
复制
 EventManager.RegisterClassHandler(typeof(FrameworkElement),
                  MouseLeaveEvent, new MouseEventHandler(ClearText));
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1067899

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档