WPFユーザーコントロールをホストしているウィンドウフォームを閉じたいとします。これは、ウィンドウアプリケーションで現在のフォームを閉じるときに使用されるようなものです。しかし、WPFアプリケーションのために、私は、ユーザーへの参照を取得することはできないのですが、親を制御WPFユーザーコントロール内からWPFユーザーコントロールをホストしているウィンドウフォームを閉じる方法
3
A
答えて
9
に追加する私は私のフォーム
this.Closeを()閉じることができるように、このコントロールをホストしているフォームを取得する方法
:あなたのWpfControlあなたのWinFormで財産public Form FormsWindow { get; set; }
はElementHost
のイベントChildChanged
のイベントハンドラを追加します
その後、ウィンドウを操作するためにWpfControlのFormsWindow
プロパティを使用することができます。例:代替ソリューションは、可能性が
this.FormsWindow.Close();
1
、
Window parent = Window.GetWindow(this);
parent.Close();
+3
WPFユーザーコントロールがWindowsフォーム内でホストしている場合は機能しません。 – Zyo
1
ちょうど@ The_Smallestに追加するには、それ以外の場合は非常に明確な答えです。
イベントハンドラコードをコピーして通過するだけで、フォームのChildChangedイベントをElementHost_ChildChangedに設定する必要があります。私はそのステップを逃して、なぜFormsWindowがnullだったのか理解しようと30分を費やしました。
ありがとうございます。これは正しいですが、** InitializeComponent(); **の後に子を設定する必要があるようです。** – MSH