0

多くのアセンブリ (> 100) を含むプロジェクトがあります。これらのアセンブリの多くには、「画像」などのサブフォルダーがあります。たとえば、多くの wpf-windows/user-controls には "\images\close.png" があります。つまり、「close.png」画像が 1 つだけではなく、多数あることを意味します。

今、私はすべての画像/リソースの中心的な場所を作成したいと考えています. 私がしたこと:

  • 「abcdeCore.Resources」という新しいクラスライブラリ/アセンブリを作成しました
  • 「ImageDictionary.xaml」というリソース辞書を追加しました
  • サブフォルダー「Images」を作成しました
  • 私の画像をこのサブフォルダーにコピーしました。たとえば、「abcdeCore.Resources\images\close.png」
  • イメージのビルド プロパティを「リソース」に設定する
  • この「< ImageSource x:Key="Image_close">close.png< /ImageSource>」のように「ImageDictionary.xaml」で画像を宣言しました
  • このような「close.png」画像を使用したいwpfウィンドウで辞書を使用する

    < Window.Resources> < ResourceDictionary Source="pack://application:,,,/abcdeCore.Resources;component/Images/ImageDictionary.xaml"/> < /Window.Resources >

  • この < Button>< Image Source="{StaticResource Image_close}">< /Image>< /Button> のように、中央リソース ディクショナリ「ImageDictionary.xaml」で宣言された画像を使用しようとしています。

VSのデザイナーモードでは、画像が表示されていますが、プロジェクトを開始してwpfウィンドウを開くと、次のようなエラーが表示されます

"{"ファイルまたはアセンブリ \"abcdeCore.Resources, Culture=neutral\" またはその依存関係の 1 つが見つかりません。The system can't find the given file.":"abcdceResources, Culture=neutral"} (エラー メッセージをドイツ語から英語に翻訳しました :))

私が何を間違えたのか、なぜ中央のリソースディクショナリーを適切に機能させることができないのか、誰にもわかりませんか? アイデアをありがとう!!!

ドイツからのご挨拶

編集:wpfウィンドウがあるアセンブリに「abcdeCore.Resources」への参照もあります

edit 2: System.Windows.Markup.XamlParseException: Message=RowNumber "7" and RowPosition "10" of "プロパティ "System.Windows.ResourceDictionary.Source" を設定すると例外が発生しました".

4

1 に答える 1

0

わかりました、私が最初に思いついたのWinApi. リソース読み込みメカニズムの内部については何も知らないので、よくわかりません。

短いパスからプログラムを起動してみてください。おそらく、それは問題を解決するでしょう。

編集

単なるアイデアですがImageDictionary.xaml、リソースとして宣言されていますか? そうでない場合は、そのビルド ステップを「リソース」に設定する必要があります。

EDIT2

次のアイデア。ImageDictionary.xaml要素をコメントアウトして空にしてください。要素ごとにディクショナリのコメントを外します。おそらく、この方法で問題の原因を見つけることができます。

于 2013-02-01T13:00:19.230 に答える