Wpf窗口中打開WinForm窗口

 獲取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));
相關文章
相關標籤/搜索