Поиск дескриптора в окне WPF

В формах Windows было свойство win1.Handle, которое, если я помню, возвращает дескриптор дескриптора главного окна?

Есть ли эквивалентный способ получить дескриптор окна WPF?

Я нашел следующий код онлайн,

IntPtr windowHandle = new WindowInteropHelper(Application.Current.MainWindow).Handle;

но я не думаю, что это поможет мне, потому что мое приложение имеет несколько окон.

Спасибо!!

Ответ 1

Ну, вместо передачи Application.Current.MainWindow просто передайте ссылку на любое окно, которое вы хотите: new WindowInteropHelper(this).Handle и т.д.

Ответ 2

Просто используйте свое окно с классом WindowsInteropHelper:

// ... Window myWindow = get your Window instance...
IntPtr windowHandle = new WindowInteropHelper(myWindow).Handle;

В настоящий момент вы запрашиваете главное окно приложения, из которого всегда будет одно. Вы можете использовать эту же технику в любом окне, однако, если это класс Window.Windows.Window, производный от Windows.

Ответ 3

вы можете использовать:

Process.GetCurrentProcess().MainWindowHandle

Ответ 4

Если вы хотите, чтобы по какой-либо причине вы делали дескрипторы окон для ВСЕХ приложений Window, вы можете использовать свойство Application.Windows, чтобы получить доступ ко всем Windows, а затем использовать WindowInteropHandler для доступа к своим дескрипторам, как вы уже продемонстрировали.