2009-03-31 15 views
0

最初に私はWPFの初心者だと言いたいので、私の無知を許してください...ホスティングアプリケーションがWPFでない場合、WPFはApp.xamlファイルを処理しますか?

私はRhino 4.0用の.Netプラグインを作成しています。私はWPFを使ってUIを開発しています。

Rhino 4.0 CADエンジンは、MFC/Win32アプリケーションです。プラグインは、アプリケーションが実行された後に実行され、WPFウィンドウを作成し、MFCウィンドウをそのウィンドウに「吸い込み」ます。

私の質問は、ホスティングアプリケーションがWPFアプリケーションでない場合、WPFはアプリケーションレベルのリソースを取得するApp.xamlファイルを探しますか?

もしそうでなければ、アプリケーションレベルのリソースを格納する最良の方法は何ですか?

おかげで、

ジェイソン

答えて

1

WPFプロジェクトは、デフォルトでアプリケーションのエントリポイントを生成します。このエントリーポイントはあなたのApplication由来のクラスを構築し、初期化します。あなたが必要な場合は、常にそれに手動でインスタンスを作成し、ストアアプリケーションレベルのリソースをすることができます:

App app = new App(); 
app.InitializeComponent(); 
app.Run(); 
+1

これは最善のアプローチのように聞こえましたが、実行時にApp.xamlページで指定されたリソースを見つけることができません。 私は "pack:// ,,,,"メソッドと "component/path"メソッドとストレートパスを試しました。何も動作しませんでした。 Visual Studioはそれらを見つけることができましたが、実行時には失敗します。 –

0

私の推測では、それはサイが、それは別々のプロセスとして、それを実行しない、あなたのプラグインを実行どのように関係しているか、それはちょうどあなたが定義したいくつかのことを呼ぶんでしょうか?

あなたが定義した関数を呼び出すと、そこにコードを置いてウィンドウを開始できますか?

1

あなたはMSDNの「テーマレベル」と言及するもので、あなたのリソースを格納しようとしたことがありますか?

<root>\Themes」というフォルダ内に、generic.xamlというファイルがあります。

私はWPFアプリケーションではなかったプロジェクトでこれを試しませんでしたが、アプローチはあなたのために働くかもしれません。

+0

ありがとう、私はすぐに試してみましょう。 –

3

App.xamlは、部分クラスApp:Applicationの一部として使用されます。 アプリケーションにWPFベースのアプリケーションクラスがない場合は、 を手動でロードしてアプリケーションとマージし、メインウィンドウを作成して表示することができます(Applicationクラスの静的メソッド経由でアクセス)。

コードはこのようになります。

関連する問題