私はWPFを学んでいます。WPF - App.g.csのMainの自動電源オフ
私のApp.xaml.csで私の独自のMainメソッドを提供したいのですが、App.g.csで私のために生成されたものを取得するのではなくしかし、私は追加のMainが生成されるのを止める方法を見つけていないので、私は矛盾を起こしています。
プロジェクトファイルやこれを制御する場所に設定がありますか?
私はWPFを学んでいます。WPF - App.g.csのMainの自動電源オフ
私のApp.xaml.csで私の独自のMainメソッドを提供したいのですが、App.g.csで私のために生成されたものを取得するのではなくしかし、私は追加のMainが生成されるのを止める方法を見つけていないので、私は矛盾を起こしています。
プロジェクトファイルやこれを制御する場所に設定がありますか?
私はここで答えを見つけました。 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です。私はまだ問題を完全に理解していません。
アプリケーションのブートストラップを担当する別のクラス(たとえば、Entry
)を作成することもできます。次に、プロジェクト設定に行き、起動オブジェクトをEntry
に設定します。そうすれば、自動生成されたメソッドを無効にする必要はありません。
最も簡単な方法は、プロパティウィンドウのビルドアクションをApplicationDefinitionからApp.Xamlのページに設定することです。
次に、独自のエントリポイントを定義することができます。
私は解決策が見つかりました:
それにあなたの古いコピーしたコードを貼り付ける一つの方法は、手動でカスタム要件にMainメソッドを定義することができますので、XAMLでアプリケーションから派生したクラスを定義する見送ることです
簡単な方法は、ちょうど をコンパイルし、App.xamlからApplicationDefinitionを削除ページ にそれを変換し、
はきれいなように思えるのアプリケーション内の任意の他のファイルから削除するには、ビルドアクションでStartup.csのようなクラスを作成しますこれを行う方法は、私は不思議な欠点はありますか? – Vidar