Trae una ventana al frente en WPF

¿Cómo puedo llevar mi aplicación WPF al frente del escritorio? Hasta ahora he intentado:

SwitchToThisWindow(new WindowInteropHelper(Application.Current.MainWindow).Handle, true);

SetWindowPos(new WindowInteropHelper(Application.Current.MainWindow).Handle, IntPtr.Zero, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);

SetForegroundWindow(new WindowInteropHelper(Application.Current.MainWindow).Handle);

Ninguno de los cuales está haciendo el trabajo (Marshal.GetLastWin32Error() dice que estas operaciones se completaron con éxito, y los atributos P / Invoke para cada definición tienenSetLastError=true)

Si creo una nueva aplicación WPF en blanco y llamoSwitchToThisWindow con un temporizador, funciona exactamente como se esperaba, por lo que no estoy seguro de por qué no funciona en mi caso original.

Editar: Estoy haciendo esto junto con una tecla de acceso rápido global.

Respuestas a la pregunta(18)

Su respuesta a la pregunta