まず、C#、WPF、デスクトップ アプリケーション (.NET 3.5 の場合もあります) を使用します。
アプリケーションの起動時にログイン ウィンドウを表示し、ログインが成功した場合は、ログイン ウィンドウを非表示にしてメイン アプリ ウィンドウを表示する必要があります。さらに、メイン ウィンドウを閉じると、ログイン ウィンドウが再び表示されます。ログイン ウィンドウを閉じると、アプリケーションが終了します。
さらに難しくするボーナス: 「ユーザーを記憶する」オプションがチェックされている場合、ログイン ウィンドウはスキップされ、ユーザーは自動的にログインし、メイン ウィンドウがすぐに表示されます。(オプションがどのように格納されるかについては考えないでください。それを知っていて、変数に値があると仮定してください)。
アプリケーションの開始点とは何ですか (app.xaml の StartupUri プロパティにあると見なされるウィンドウを意味します)。
アーキテクチャをどのように解決しますか? App_Startup イベントを使用して、その時点からいくつかのウィンドウを表示する最良の方法はありますか?
どのタイプの App.ShutdownMode を使用しますか? そして、それはどのように機能しますか?「OneLastWindowClose」、「OnMainWindowClose」、または「OnExplicitShutdown」を使用できます。あなたの選択は何ですか、なぜですか?
一般的に、私は「何が何を呼び出し、アプリケーションの「ルート」とは何か、アプリケーションを閉じることを呼び出すもの」に興味があります。
問題の解決策は既にありますが、興味があります。この問題に遭遇したことがある人や、どのように解決しましたか? 私のアプローチを喜んで共有しますが、そもそもあなたのアイデアを制限したくありません.
ご協力いただき、ありがとうございます。
PS:私はMVVMフレームワークを使用しているため、少し面倒ですが、要点は変わりません。Ninject も IoC として使用していますが、もちろんこの問題は解決していません。質問をできるだけ明確にするために、これらの情報については言及しませんでした。また、例外を処理する必要があります (ログイン中のサーバーまたはデータベースとの通信が失敗する可能性があります)。さらに興味深いものにするために、アプリケーションの動作 (ロード、サーバーとの通信、自動ログイン) を示すインタラクティブな「スプラッシュウィンドウ」を表示する必要があります。ただし、現時点ではこれらの要件には近づかないようにしてください。後で説明します。