How to get the hWnd of Window instance?

前端 未结 2 804
天命终不由人
天命终不由人 2020-12-04 23:11

My WPF application has more than one window, I need to be able to get the hWnd of each Window instance so that I can use them in Win32 API calls.

Example of what I w

2条回答
  •  佛祖请我去吃肉
    2020-12-05 00:04

    Extending on Douglas's answer, if the Window has not been shown yet, it might not have an HWND. You can force one to be created before the window is shown using EnsureHandle():

    var window = Window.GetWindow(element);
    
    IntPtr hWnd = new WindowInteropHelper(window).EnsureHandle();
    

    Note that Window.GeWindow can return null, so you should really test that too.

提交回复
热议问题