3

Visual Studioの不具合であると私が信じているため、この作業を行うことができませんでした。誰かがこの状況を試みて、何が起こっているかを共有していただければ幸いです。

ソリューション2プロジェクトでセットアップしました:-CLIが有効になっているC ++アプリケーション(.exe)-一致する.csウィンドウクラス(.dll)を持つ.xamlフォームを持つC#/WPFクラスライブラリ

C ++アプリケーション内にWPFウィンドウを生成したいので、その参照をインポートしてウィンドウの新しいインスタンスを作成し、新しいアプリケーションコンテキストで実行します。それはうまくいきます。

このウィンドウからクラスを作成し、C#ウィンドウの保護された関数から継承されたさまざまなイベントを処理したいので、C ++アセンブリで、子が.xamlパワードウィンドウの.csクラスであるパブリックrefクラスを作成します。これは正常にコンパイルされます。

すなわち:

public ref class myCPPWindow : myWPFWindow { ... };

次に、生成したウィンドウを、C#アセンブリにある基本クラスではなく、C++アセンブリにある親クラスに変更します。.xamlウィンドウの読み込み中に基本C#クラスのInitializeComponent()部分でエラーが発生しました。これは、基本クラスが機能していても、C#アセンブリから.xamlウィンドウソースを読み込めないというエラーです。誰かがこれについて説明/修正を与えることができますか?

4

1 に答える 1

1

これは、WPF の一般的な [ライブラリ; ユーザー コントロール]-[アプリケーション; 派生コントロール] の問題のように見えます。C++ がなくても再現しました。説明を掘り下げることなく、一般的な回避策は、「基本」クラスを集約するか、基本クラスをユーザー コントロールではなくテンプレート化されたコントロール (.xaml ファイルなしなど) に再設計することです。私の理解が正しければ、あなたの質問はuri の質問で識別されるリソースがコンポーネントにありませんと同じです。

于 2012-05-18T10:27:38.920 に答える