これはWPF/C#アプリケーションであり、コードの問題よりも多くの設計上の問題があります。Window_Closedイベントをトリガーせずにウィンドウを閉じる
私は、ウィンドウから派生したクラスを実装する5つの別々の* .xamlファイルを持っています。だから、5つのウィンドウ。これはウィザードタイプのアプリケーションで、各ウィンドウには新しいウィンドウを作成し、それを隠し、新しいウィンドウを表示する戻る/次のボタンがあります。
時々私は窓をスキップする、または最初のウィンドウに戻りますので、これは新しいウィンドウが開かれるたびなど、(私はページを使用していない)純粋に
ベースのナビゲーションではありません親ウィンドウは新しいウィンドウの所有者として自身を設定し、自身を隠します。戻るボタンを使用すると、新しいウィンドウに所有者が表示され、閉じます。これは、ナビゲーションのために正常に動作します。
ナビゲーションを使用するのではなく、実際にウィンドウを閉じるときに問題が発生します。彼らがウィンドウを閉じると、Alt-F4、Xなどを押すとアプリケーション全体が閉じるはずです。
私の「戻る」ボタンはウィンドウを閉じます。ウィンドウが閉じると、ウィンドウが閉じられ、アプリケーション全体が終了します。
私は、ユーザーがウィンドウを閉じたときにアプリケーション全体を閉じる方法を考えていますが、ウィンドウを閉じて(実際にはそれを隠さず、実際には破棄しないで)、クリックしたときにその所有者を表示します。私は前者を引き起こさずに後者をやっているようには見えない。
提案がありますか?私はちょうどこれについて正しい考え方を考えていません。
ナビゲーションを使用して調べ、実際にその特定の動画を見ました。それは本当に私が望むものではありません。 Webページのナビゲーションが増え、ページ間を移動することができます。私は、それぞれの場合に「戻る」と「次の」が何をすべきかという非常に具体的なルールを持っています。コンテキストに応じてページをスキップしたり、コードを実行することがあります。 私は自分の5つのウィンドウのそれぞれにusercontrolsを使用しています。これは本質的に1つ以上のユーザーコントロールですので、検討する価値があります。バック/ロウのロジックをウィンドウの外に移動する必要がありますが、それはその価値があるかもしれません。 – Eric
@ user783106 - はい、バック/ポップをメインウィンドウに入れ、ホステッドコントロール。 Back/Nextをクリックすると、次のUserControlを選択するルールを使用できます。ナビゲーションを使用したくない場合は、自分で視界を切り替えるだけです。 –
しかし、ちょっとしたことに、ナビゲーションでルールを使うことができます。 NavigateTo( "string name of page")というメソッドがあります。ボタンをクリックすると、コードビハインドで次のページを決定するために必要なロジックを実行します。表示する準備ができたら、次のページの名前を渡すNavigateTo()を呼び出します(必要に応じて完全に動的になります)。 –