8

XAML ファイルと関連する C# コード ビハインド ファイルを含むプロジェクトに WPF ウィンドウがあります。App.xaml で「StartupUri=MainWindow.xaml」をこのウィンドウに設定すると、アプリケーションの起動時にウィンドウが期待どおりに開きます。

ただし、アプリケーションでコマンド ライン パラメーターを取得してから、GUI を開くかどうかを決定したいと考えています。代わりに、以下に示すように定義されている App.xaml ファイルに「Startup=Application_Startup」を設定しました。

    private void Application_Startup(object sender, StartupEventArgs e)
    {
        if (e.Args.Length > 1)
        {
            //do automated tasks
        }
        else
        {
            //open ui

           MainWindow window = new MainWindow();
            this.MainWindow = window;

            window.Show();
        }
    }

しかし、これを実行すると、表示されるウィンドウは完全に空白になります。

ここに画像の説明を入力

4

2 に答える 2

10

追加するwindow.InitializeComponent()とうまくいくようです:

            MainWindow window = new MainWindow();
            Application.Current.MainWindow = window;
            window.InitializeComponent();
            window.Show();

私は通常、何かが機能する、または機能しない理由について少し説明したいと思います。この場合、私には手がかりがありません。オンラインの例にはInitializeComponentが含まれていないことがわかりますが、あなたとまったく同じエラーが発生します(引数をチェックしないイベント)。

于 2013-07-03T04:33:21.323 に答える
0

サンプル アプリケーションを作成し、StartupUri を削除して、提供されたメソッドに Startup を設定しました。すべてが期待どおりに機能しているようで、ウィンドウのコンテンツが表示されているため、Daniel が述べたように、MainWindow コンストラクターで InitializeComponent メソッドの呼び出しが欠落している可能性があります。

于 2013-07-03T08:52:16.377 に答える