30

新しいWPFアプリケーションプロジェクトが作成されると、、、MainWindow.xamlおよびApp.xamlクラスの背後にある対応するコードが自動的に生成されます。にApp.xamlは、最初に実行されるウィンドウを定義する属性があり、デフォルトでは次のようになります。StartupUri="MainWindow.xaml"

同じプロジェクトで新しいDispatcherクラスを作成しました。起動時に、そのクラスのインスタンスをDispatcher作成してから、そのメソッドの1つを実行する必要があります。そのメソッドは実際にウィンドウを作成して表示しMainWindowます。App.xamlでは、またはを変更してそれを実現するにはどうすればよいApp.xaml.csですか?または、で実行できない場合App、どのように実装すればよいですか?ありがとう。

4

2 に答える 2

51

StartupUriApp.xamlから属性を削除できます。

次に、OnStartup()App.xaml.csでのオーバーライドを作成することで、クラスの新しいインスタンスを作成できますDispatcher

クイックapp.xaml.csの実装は次のようになります。

public partial class App : Application
{
    protected override void OnStartup(StartupEventArgs e)
    {
      base.OnStartup(e);

      new MyClassIWantToInstantiate();
    }
  }
}

アップデート

この方法を使用してアプリの起動をカスタマイズし、突然アプリケーションレベルのリソースが見つからなくなった場合のバグの回避策を最近発見しました。

于 2012-11-16T22:59:59.303 に答える
3

Startupイベント(クラスApplication)-MSDNを使用してみてください

Dispatcherインスタンスを作成した後、このイベントハンドラーでMainWindowを表示できます。

于 2012-11-16T22:55:40.300 に答える