WPFポップアップでWindowsフォームコントロールをホストしています。以下の問題:
- StaysOpen = Falseにすると、WinFormコントロールを操作できなくなります。ポップアップ領域の外側をクリックすると閉じる必要があるため、StaysOpenをfalseに設定する必要があります。
- StaysOpen = Trueにすると、winformコントロールを操作できますが、ポップアップ領域の外側をクリックしても閉じられません。
- ポップアップのMouseEnterでStaysOpen=trueを設定し、MouseLeaveでStaysOpen = Falseを設定しようとしましたが、マウスがWinFormコントロールを超えると、MouseLeaveが起動し、予期しない動作が発生します。
ポップアップのIsMouseCaptureWithinプロパティを試しても、winformsでは機能しないことがわかりました(フレームワークのバグだと思います)。
別の問題は、ルートメインフォーム(Windowsフォーム)が非アクティブ化されている(Alt + Tabを押す)ときにポップアップを閉じようとしましたが、ポップアップでwindowshostControlのコントロールの1つに入っても、このイベント(非アクティブ化)が発生します。
望ましい行動:
- wpfポップアップでwinformコントロールをホストして操作できる必要があります。
- ポップアップの領域の外側をクリックすると、ポップアップが閉じます。
入力に感謝します。
ありがとう。