[WPF] 最初に開くXAMLを切り替える

備忘録的に、メモ。
WPFアプリで最初に開く画面は、App.xaml の StartupUri 属性にしてあるのですが、これをコンパイル時に切り替えます。たとえば、DEBUG 時に「MenuWindow.xaml」を開いて RELEASE時に「LoginWindow.xaml」を開くというパターンです。デバッグ時にはログイン画面が面倒だから、飛ばしてしまってメニュー画面を開きたいときに便利です。という自分。

/// <summary>
/// App.xaml の相互作用ロジック
/// </summary>
public partial class App : Application
{
    protected override void OnStartup(StartupEventArgs e)
    {
#if DEBUG
        this.StartupUri = new Uri("MenuWindow.xaml", UriKind.Relative);
#endif
        base.OnStartup(e);
    }
}

OnStartup イベントをオーバーライドして、StartUri プロパティを書き換えます。この場合は、DEBUG 時には「MenuWindow.xaml」が使われて、RELEASE 時には App.xaml に指定されているページが開かれるというパターンです。
設定ファイルを読み込んで、トップ画面を開くときにも使えるかも。

カテゴリー: WPF パーマリンク