我想显示状态栏在我的WPF应用程序的任何控制的工具提示文本,当提示即将被打开。
当然,我可以通过递归主窗口的所有子控件尝试循环并设置其ToolTipOpening
事件总是相同的方法。 但有一个更简单的方法?
就像一个Application.Current.AnyToolTipOpening
事件?
我想显示状态栏在我的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
}
}
谢谢,这工作。 此外,为了使当鼠标离开与工具提示控件的状态栏文字消失:
EventManager.RegisterClassHandler(typeof(FrameworkElement),
MouseLeaveEvent, new MouseEventHandler(ClearText));