Ответ 1
Ну, вместо передачи Application.Current.MainWindow
просто передайте ссылку на любое окно, которое вы хотите: new WindowInteropHelper(this).Handle
и т.д.
В формах Windows было свойство win1.Handle, которое, если я помню, возвращает дескриптор дескриптора главного окна?
Есть ли эквивалентный способ получить дескриптор окна WPF?
Я нашел следующий код онлайн,
IntPtr windowHandle = new WindowInteropHelper(Application.Current.MainWindow).Handle;
но я не думаю, что это поможет мне, потому что мое приложение имеет несколько окон.
Спасибо!!
Ну, вместо передачи Application.Current.MainWindow
просто передайте ссылку на любое окно, которое вы хотите: new WindowInteropHelper(this).Handle
и т.д.
Просто используйте свое окно с классом WindowsInteropHelper:
// ... Window myWindow = get your Window instance...
IntPtr windowHandle = new WindowInteropHelper(myWindow).Handle;
В настоящий момент вы запрашиваете главное окно приложения, из которого всегда будет одно. Вы можете использовать эту же технику в любом окне, однако, если это класс Window.Windows.Window, производный от Windows.
вы можете использовать:
Process.GetCurrentProcess().MainWindowHandle
Если вы хотите, чтобы по какой-либо причине вы делали дескрипторы окон для ВСЕХ приложений Window
, вы можете использовать свойство Application.Windows
, чтобы получить доступ ко всем Windows, а затем использовать WindowInteropHandler
для доступа к своим дескрипторам, как вы уже продемонстрировали.