title: Bring a window to the front in WPF
body: <p>How can I bring my WPF application to the front of the desktop? So far I've tried:</p>
  
  <pre><code>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);
  </code></pre>
  
  <p>None of which are doing the job (<code>Marshal.GetLastWin32Error()</code> is saying these operations completed successfully, and the P/Invoke attributes for each definition do have <code>SetLastError=true</code>).</p>
  
  <p>If I create a new blank WPF application, and call <code>SwitchToThisWindow</code> with a timer, it works exactly as expected, so I'm not sure why it's not working in my original case.</p>
  
  <p><strong>Edit</strong>: I'm doing this in conjunction with a global hotkey.</p>