System.InvalidOperationExceptionが:「宿泊HWNDは、子ウィンドウの親を指定しなければなりません。」

免責事項:この記事はブロガーオリジナル記事です、続くBY-SAのCC 4.0を著作権契約、複製、元のソースのリンクと、この文を添付してください。
このリンク: https://blog.csdn.net/WPwalter/article/details/102775092

あなたがWPFウィンドウにネストされたWin32子ウィンドウを表示しようとすると、エラーが発生している可能性があります寄宿的 HWND 必须是指定父级的子窗口。「」

これは、この資料では、このエラーを修正する方法を説明し、Win32エラーの非常に典型的です。


この記事で

私たちはされているMainWindow新しいWPFコントロールを運ぶために他のウィンドウの一つに埋め込ま。通常の状況下で、我々は確かにそうしていないが、私たちは、コンテンツをレンダリングするときWPFの統合のプロセスを完了するために、国境を越えてしたい場合は、新しいウィンドウアップを埋め込む必要があります。

WPFを使用することができHwndSource、WPFコントロールにカスタム使用して、継承のWin32ウィンドウをラップするHwndHostWPFのWin32ウィンドウコントロールにパッケージ化することができるクラスを。ウィンドウハンドルとしてプロセス境界を越えて渡されるので、この方法は、あなたは、WPFコントロールディスプレイ全体に処理を完了することができます。

問題

埋め込まれたウィンドウをデバッグするときに、エラーコードが発生する場合があります。

エラー

System.InvalidOperationExceptionが:「宿泊HWNDは、子ウィンドウの親を指定しなければなりません。」

英語は以下のとおりです。

ホステッドHWNDは、指定した親の子ウィンドウでなければなりません。

原因と解決策

同じサブウインドウが窓で二回子ウィンドウに設定されているため、このエラーが発生します。

具体的には、使用してウィンドウでHwndHostセットをAに続いて、Bサブ画面となり、新しいHwndHostセットが新しい子ウィンドウになりました。

解決するには、ウィンドウを使用することを確認しなければならない唯一できるHwndHost子ウィンドウ一度設定します。


私のブログはで開始されhttps://blog.walterlv.com/、および特色CSDNから解放されますが、それはめったに一度放出されない更新されます。

あなたが任意のブログの内容を理解していない表示された場合は、共有してください。私が建てDOTNET職業技術学院が参加することを歓迎します。

クリエイティブコモンズライセンス

この作品は、ある非営利- -同一条件許諾4.0の国際ライセンス契約クリエイティブ・コモンズのライセンスのために。:、、使用を転載再投稿、しかし陸毅(リンク含むが署名した文書保管してくださいへようこそhttps://walterlv.blog.csdn.net/を、商業目的のために使用してはならない、記事に基づいて作業が同じライセンスを変更してください)リリース。ご質問があれば、してください私に連絡

おすすめ

転載: blog.csdn.net/WPwalter/article/details/102775092