首页 文章

查找WPF窗口的句柄

提问于
浏览
92

Windows窗体有一个属性win1.Handle,如果我记得,它返回主窗口句柄的句柄?

是否有相同的方法来获取WPF窗口的句柄?

我在网上找到了以下代码,

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

但我认为这不会对我有所帮助,因为我的应用程序有多个窗口 .

谢谢!!

4 回答

  • 119

    只需使用WindowsInteropHelper类的窗口:

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

    现在,你要求申请人的主窗口,其中总是有一个 . 但是,您可以在任何Window上使用相同的技术,前提是它是System.Windows.Window派生的Window类 .

  • 35

    如果由于某种原因需要所有应用程序的 Window 的窗口句柄,可以使用 Application.Windows 属性获取所有Windows,然后使用 WindowInteropHandler 来获取它们已经演示过的句柄 .

  • 3

    您可以使用 :

    Process.GetCurrentProcess().MainWindowHandle
    
  • 4

    好吧,不要传递 Application.Current.MainWindow ,只需将引用传递给你想要的任何窗口: new WindowInteropHelper(this).Handle 等等 .

相关问题