質問

WPFを勉強しています。

App.g.cs で生成された Main メソッドを取得するのではなく、App.xaml.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 のビルド アクションがあります。これを Page に変更すると、WPF は Main メソッドを作成せず、プロジェクトに追加する通常のクラス ファイルで独自のメソッドを提供できます。

ただし、上記のブログへのコメントでは、ブレンドに問題がある可能性があることが指摘されており、次のように言及されています。 http://blogs.msdn.com/expression/archive/2008/04/09/creating-a-wpf-blend-project-that-loads-resources-in-code.aspx 。問題点をまだ完全には理解していません。

他のヒント

また、単にあなたのアプリケーションをブートストラップする責任がある(例えば、Entry)別のクラスを作成することができます。次に、設定を投影し<=>にスタートアップオブジェクトを設定するために行きます。その方法は、あなたも自動生成されたメソッドを無効にする必要はありません。

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

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

解決策を見つけました:

  1. app.xaml ファイルからデータをコピーします。
  2. app.xaml ファイルを削除し、同じ名前で再作成します
  3. .cs ファイルに「main」メソッドを作成し、コピーした古いコードをそこに貼り付けます。

は一つの方法は、XAMLでのアプリケーションの派生クラスを定義する見送るするので、手動でカスタム要件をMainメソッドを定義することができます。

簡単な方法は、単にコンパイルするビルドアクションでStartup.csのようなクラスを作成します そのページにそれを変換するApp.xamlからApplicationDefinitionを削除 およびアプリケーション内の他のファイルから削除してください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top