Вывести на передний неактивное окно - PullRequest
0 голосов
/ 21 ноября 2018

У меня есть два приложения 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 , но это не работает.У кого-нибудь есть решение этой проблемы?

1 Ответ

0 голосов
/ 21 ноября 2018

Попробуйте

yourSpecificWindow.Activate();

, если это не помогает, также включите

yourSpecificWindow.TopMost = true;
yourSpecificWindow.Focus();
...