私は、異なるフルスクリーンスライド(またはビュー)を表示し、それぞれを所定の時間だけ回転させる、InformationKiosk WPFアプリケーションを作成しています。ステージ1が完了しました。これにより、ユーザーは選択したWebページを順番に調べることができ、完璧に動作します。外部DLLからWPF MVVMビューをWPFアプリケーションにロードするにはどうすればよいですか?
ステージ2は私が立ち往生している場所です。私は現在、(私は完全なコードアクセス権を持っている)外部WPFアプリケーションからスライドを表示する必要があり、私はこれに本当の問題を抱えています。
他のアプリケーションのdllをInformationKioskアプリケーションの参照として追加しましたが、見つからなかったスタイルのためにいくつかのエラーが発生しました。問題は、他のアプリケーションからの必要なビューがApp.xamlファイルと外部スタイルシートのスタイルを使用しているということです。
私はResourceDictionary.MergedDictionaries
要素に次のように使用して外部スタイルシートファイルからスタイルをロードするために管理:
<ResourceDictionary Source="pack://application:,,,/ProjectName.Views;component/Support/
SupportQueueItemStyle.xaml" />
問題は、我々ので、私は他のアプリケーションからのApp.xamlファイルを読み込むことができないということです1つのアプリケーションに2つのApp.xamlを持つことはできません。したがって、アプリケーションを実行すると、XamlParseExceptionが発生します。「Setプロパティ 'System.Windows.FrameworkElement.Style'が例外をスローしました。」 (これはスタイルが見つからないことを意味します)。
したがって、このシナリオはWPF/MVVMでどのように実装されるはずですか?確かに、必要なビューからInformationKioskアプリケーションにコードをコピーするよりも良い方法があるはずです。私はまた、次のコードを使用して外部アプリケーションアセンブリをロードしようとした:それは[OK]をロードしている間、私はassembly
内の任意の有用な特性を見つけることができなかったし、実際にそれをどうするのか分からない
Assembly assembly = Assembly.LoadFrom(@".\AssemblyName.exe");
をし、私ができる場合この方法を使って私が望むものを得ることさえできます。
お手伝いができる場合は、どうかしてください。 多くのありがとうございます。
他のアセンブリソースコードにアクセスできますか? – Ucodia
なぜ共有アセンブリ(.dll)を作成しないのですか?私たちは、4-5のWPFベースの共有アセンブリのようなものを持っています。 Visual Studioでは、主に実行可能ファイルへの参照を追加すると自動的にロードされるテーマ/ Generic.xamlを持つApp.xamlの代わりに、 "WPF Custom Control Library"を使用しました。 – dowhilefor
@Ucodia - はい、私は外部アプリケーションコードにアクセスできます。 – Sheridan