Windows窗体有一个属性win1.Handle,如果我记得,它返回主窗口句柄的句柄?
是否有相同的方法来获取WPF窗口的句柄?
我在网上找到了以下代码,
IntPtr windowHandle = new WindowInteropHelper(Application.Current.MainWindow).Handle;
但我认为这不会对我有所帮助,因为我的应用程序有多个窗口 .
谢谢!!
只需使用WindowsInteropHelper类的窗口:
// ... Window myWindow = get your Window instance... IntPtr windowHandle = new WindowInteropHelper(myWindow).Handle;
现在,你要求申请人的主窗口,其中总是有一个 . 但是,您可以在任何Window上使用相同的技术,前提是它是System.Windows.Window派生的Window类 .
如果由于某种原因需要所有应用程序的 Window 的窗口句柄,可以使用 Application.Windows 属性获取所有Windows,然后使用 WindowInteropHandler 来获取它们已经演示过的句柄 .
Window
Application.Windows
WindowInteropHandler
您可以使用 :
Process.GetCurrentProcess().MainWindowHandle
好吧,不要传递 Application.Current.MainWindow ,只需将引用传递给你想要的任何窗口: new WindowInteropHelper(this).Handle 等等 .
Application.Current.MainWindow
new WindowInteropHelper(this).Handle
4 回答
只需使用WindowsInteropHelper类的窗口:
现在,你要求申请人的主窗口,其中总是有一个 . 但是,您可以在任何Window上使用相同的技术,前提是它是System.Windows.Window派生的Window类 .
如果由于某种原因需要所有应用程序的
Window
的窗口句柄,可以使用Application.Windows
属性获取所有Windows,然后使用WindowInteropHandler
来获取它们已经演示过的句柄 .您可以使用 :
好吧,不要传递
Application.Current.MainWindow
,只需将引用传递给你想要的任何窗口:new WindowInteropHelper(this).Handle
等等 .