0
私のアプリケーションでは、WindowsFormsHostで自分のコントロール(WF)を追加し、このホストをWindow(WPF)に追加します。WindowsFormsHostの親コントロールを取得するには?
WindowsFormsHost host = new WindowsFormsHost();
host.Child = grid; //this is instance of WF control
testwindow.testSurface.Children.Add(host); // add in Window(WPF)
問合せ: 今私はtestWindowの画像をキャプチャする(WFプロジェクトではないWPFで)「グリッド」から「testWindow」のハンドル値を取得する必要があります。
"grid.Parent as WinFormsAdapter"を試しましたが、内部クラスです。私は以下の記事を見つけましたが、WPFプロジェクトですべての記事を表示しています。
誰もがこれを達成するためにどのように私を提案してください?
おかげで、
ありがとうございました。今、私はWindowsFormsHostの親を取得できます。 Handle(IntPtr)の値が "0"として返されるため、イメージを取得できません。 制御アダプタ= DataGrid.Parent; アセンブリasm = typeof(WindowsFormsHost)。アセンブリ; タイプtype = asm.GetType( "System.Windows.Forms.Integration.WinFormsAdapter"); オブジェクトparent = type.InvokeMember( "_host"、BindingFlags.NonPublic | BindingFlags.GetField | BindingFlags.Instance、null、adapter、new Object [] {}); WindowsFormsHostホスト= WindowsFormsHostとしての親; ウィンドウtw =(ウィンドウ)host.Parent; IntPtr twHandle = WindowInteropHelper(tw).Handle; – Prithiv
私のコードに間違いはありますか? – Prithiv
私はこのコードを試してみましたが、これは正常に動作しています var windows = System.Windows.Application.Current.Windows; IntPtr twHandle = new System.Windows.Interop.WindowInteropHelper(windows [2])。ハンドル。 – Prithiv