2009-06-27 24 views
12

私はWPFを学んでいます。WPF - App.g.csのMainの自動電源オフ

私のApp.xaml.csで私の独自のMainメソッドを提供したいのですが、App.g.csで私のために生成されたものを取得するのではなくしかし、私は追加のMainが生成されるのを止める方法を見つけていないので、私は矛盾を起こしています。

プロジェクトファイルやこれを制御する場所に設定がありますか?

答えて

17

私はここで答えを見つけました。 http://learnwpf.com/post/2007/12/13/How-can-I-provide-my-own-Main%28%29-method-in-my-WPF-application.aspx

それは次のとおりです。

WPFは、特定のXAMLファイルのmain()メソッドを作成するために知っている方法は、App.xamlのビルドアクションプロパティのセットを介してである - それはApplicationDefinitionのビルドアクションを持っています。これをページに変更すると、WPFはメインメソッドを作成せず、プロジェクトに追加する通常のクラスファイルで独自のメソッドを提供することができます。

しかし、上記のブログへのコメントでは、コメントにはブレンドに関する問題があり、それは参考:http://blogs.msdn.com/expression/archive/2008/04/09/creating-a-wpf-blend-project-that-loads-resources-in-code.aspxです。私はまだ問題を完全に理解していません。

6

アプリケーションのブートストラップを担当する別のクラス(たとえば、Entry)を作成することもできます。次に、プロジェクト設定に行き、起動オブジェクトをEntryに設定します。そうすれば、自動生成されたメソッドを無効にする必要はありません。

+0

はきれいなように思えるのアプリケーション内の任意の他のファイルから削除するには、ビルドアクションでStartup.csのようなクラスを作成しますこれを行う方法は、私は不思議な欠点はありますか? – Vidar

1

最も簡単な方法は、プロパティウィンドウのビルドアクションをApplicationDefinitionからApp.Xamlのページに設定することです。

次に、独自のエントリポイントを定義することができます。

0

私は解決策が見つかりました:

  1. コピーしapp.xamlファイルからデータ
  2. がapp.xamlファイルを削除し、同じ名前
  3. で再作成するには、 `でmain`メソッドを作成します。 CSファイル、および
0

それにあなたの古いコピーしたコードを貼り付ける一つの方法は、手動でカスタム要件にMainメソッドを定義することができますので、XAMLでアプリケーションから派生したクラスを定義する見送ることです

0

簡単な方法は、ちょうど をコンパイルし、App.xamlからApplicationDefinitionを削除ページ にそれを変換し、