獲取wpf窗口對應的句柄窗口app
using System; using System.Windows; using System.Windows.Interop; using IWin32Window = System.Windows.Forms.IWin32Window; public class WindowWrapper : IWin32Window { /// <summary> /// 窗口句柄 /// </summary> public IntPtr Handle { get; private set; } /// <summary> /// 將句柄封閉爲實現IWin32Window的對象 /// </summary> /// <param name="handle"></param> public WindowWrapper(IntPtr handle) { Handle = handle; } /// <summary> 封裝爲實現IWin32Window的對象 /// </summary> /// <param name="window">WPF窗口</param> public WindowWrapper(Window window) { var helper = new WindowInteropHelper(window); System.Diagnostics.Process process = System.Diagnostics.Process.GetCurrentProcess(); Handle = process.MainWindowHandle; Handle = helper.Handle; } /// <summary> 獲得某個WPF窗口的窗口句柄 </summary> /// <param name="window">WPF窗口</param> /// <returns>窗口句柄</returns> public IntPtr GetHandle(Window window) { return new WindowInteropHelper(window).Handle; } }
打開窗口this
frmselectwx myfrmwx = new frmselectwx(); myfrmwx.Show(new Utils.WindowWrapper(this));