Я устанавливаю владельца окна для главного окна приложения. Я попробовал несколько способов явно активировать дочернее окно через 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