Когда я открываю окно WPF в своем приложении, другие системные окна также выходят на передний план вместе с моим окном [C#

Место общения программистов C#
Anonymous
Когда я открываю окно WPF в своем приложении, другие системные окна также выходят на передний план вместе с моим окном [

Сообщение Anonymous »

У меня есть сценарий, в котором, если я открываю дочернее окно WPF из своего приложения, если были открыты другие системные окна, такие как MSpaint, проводник или любое другое приложение, то вместе с моим дочерним окном также открываются все эти окна. на передний план.
Я устанавливаю владельца окна для главного окна приложения. Я попробовал несколько способов явно активировать дочернее окно через Win32 API, но это не сработало.
Я явно использовал приведенные ниже API, чтобы держать дочернее окно впереди:

Код: Выделить всё

[DllImport("user32.dll", SetLastError = true)]
internal static extern IntPtr SetFocus(IntPtr hWnd);

[DllImport("user32.dll", SetLastError = true)]
internal static extern IntPtr SetActiveWindow(IntPtr hWnd);

[DllImport("user32.dll")]
internal static extern bool SetForegroundWindow(IntPtr hWnd);
Я пытался сделать:

Код: Выделить всё

var dialogHandle =
new WindowInteropHelper(dialogWindow).Handle;
Win32Api.SetForegroundWindow(dialogHandle);
Win32Api.SetActiveWindow(dialogHandle);
Однако это не сработало. Есть идеи, что может пойти не так в таком рабочем процессе?
Я ожидаю, что только дочернее окно, которое я открываю, должно оставаться открытым и оставаться впереди, а не другие окна.

Подробнее здесь: https://stackoverflow.com/questions/787 ... come-to-fr

Вернуться в «C#»