У меня есть два приложения WPF. Оба они имеют окно со свойством Topmost
, установленным на true
. Окно первого приложения является полноэкранным окном, а второе приложение занимает только часть экрана. Важно также то, что второе приложение не может быть активировано (активация была заблокирована следующим кодом):
private const int GWL_EXSTYLE = -20;
private const int WS_EX_NOACTIVATE = 0x08000000;
[DllImport("user32.dll")]
public static extern IntPtr SetWindowLong(IntPtr hWnd, int nIndex,int dwNewLong);
[DllImport("user32.dll")]
public static extern int GetWindowLong(IntPtr hWnd,int nIndex);
protected override void OnSourceInitialized(EventArgs e)
{
WindowInteropHelper helper = new WindowInteropHelper(window);
SetWindowLong(helper.Handle, GWL_EXSTYLE, GetWindowLong(helper.Handle, GWL_EXSTYLE) | WS_EX_NOACTIVATE);
}
Я пытаюсь вывести второе приложение на передний план, когда пользователь нажимает кнопку, расположенную в первом приложении. Я попытался добиться этого с помощью SetForegroundWindow и ShowWindow, но это не работает. У кого-нибудь есть решение этой проблемы?