WPF相当于Application.AddMessageFilter(Windows窗体)

我在我的WinForms应用程序(使用非托pipe代码时)使用Application.AddMessageFilter() )。

现在我切换到WPF ,无法find这个function。

请咨询哪里可以find或实施。

如果要监视窗口消息,可以使用HwndSource.AddHook方法。 以下示例显示如何使用Hwnd.AddHook方法。 如果要监视应用程序范围消息,则可以尝试使用ComponentDispatcher类。

 private void Button_Click(object sender, RoutedEventArgs e) { Window wnd = new Window(); wnd.Loaded += delegate { HwndSource source = (HwndSource)PresentationSource.FromDependencyObject(wnd); source.AddHook(WindowProc); }; wnd.Show(); } private static IntPtr WindowProc(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled) { }